1--TEST-- 2mb_ucfirst(), mb_lcfirst functions tests 3--EXTENSIONS-- 4mbstring 5--FILE-- 6<?php 7mb_internal_encoding("UTF-8"); 8 9function test_ascii_mb_ucfirst() { 10 for ($i = 0; $i < 128; $i++) { 11 if ($i >= 97 && $i <= 122) { /* a to z */ 12 if (mb_ucfirst(chr($i)) !== chr($i - (97 - 65))) { 13 echo "mb_ucfirst compare failed: " . chr($i) . "\n"; 14 } 15 } else { 16 if (mb_ucfirst(chr($i)) !== chr($i)) { 17 echo "mb_ucfirst compare failed: " . chr($i) . "\n"; 18 } 19 } 20 } 21 echo "Done mb_ucfirst\n"; 22} 23 24function test_ascii_mb_lcfirst() { 25 for ($i = 0; $i < 128; $i++) { 26 if ($i >= 65 && $i <= 90) { /* A to Z */ 27 if (mb_lcfirst(chr($i)) !== chr($i + (97 - 65))) { 28 echo "mb_lcfirst compare failed: " . chr($i) . "\n"; 29 return; 30 } 31 } else { 32 if (mb_lcfirst(chr($i)) !== chr($i)) { 33 echo "mb_lcfirst compare failed: " . chr($i) . "\n"; 34 return; 35 } 36 } 37 } 38 echo "Done mb_lcfirst\n"; 39} 40 41echo "== Empty String ==\n"; 42var_dump(mb_ucfirst("")); 43var_dump(mb_lcfirst("")); 44echo "== ASCII ==\n"; 45test_ascii_mb_ucfirst(); 46test_ascii_mb_lcfirst(); 47echo "== mb_ucfirst ==\n"; 48var_dump(mb_ucfirst("ab")); 49var_dump(mb_ucfirst("ABS")); 50var_dump(mb_ucfirst("đắt quá!")); 51var_dump(mb_ucfirst("აბგ")); 52var_dump(mb_ucfirst("lj")); 53echo "== mb_lcfirst ==\n"; 54var_dump(mb_lcfirst("ABS")); 55var_dump(mb_lcfirst("Xin chào")); 56var_dump(mb_lcfirst("Đẹp quá!")); 57echo "== SJIS ==\n"; 58var_dump(bin2hex(mb_ucfirst(mb_convert_encoding("ebi", "SJIS", "UTF-8"), "SJIS"))); 59var_dump(bin2hex(mb_lcfirst(mb_convert_encoding("EBI", "SJIS", "UTF-8"), "SJIS"))); 60var_dump(bin2hex(mb_ucfirst(hex2bin("8471"), "SJIS"))); /* б */ 61var_dump(bin2hex(mb_lcfirst(hex2bin("8441"), "SJIS"))); /* Б */ 62var_dump(bin2hex(mb_ucfirst(hex2bin("83bf"), "SJIS"))); /* α */ 63var_dump(bin2hex(mb_lcfirst(hex2bin("839f"), "SJIS"))); /* Α */ 64var_dump(bin2hex(mb_lcfirst(hex2bin("82a0"), "SJIS"))); /* あ */ 65var_dump(bin2hex(mb_ucfirst(hex2bin("83bf8471"), "SJIS"))); 66var_dump(bin2hex(mb_lcfirst(hex2bin("839f8441"), "SJIS"))); 67echo "== EUC-JP ==\n"; 68var_dump(bin2hex(mb_ucfirst(hex2bin("a6d8"), "EUC-JP"))); /* Ω */ 69var_dump(bin2hex(mb_lcfirst(hex2bin("a6b8"), "EUC-JP"))); /* ω */ 70var_dump(bin2hex(mb_ucfirst(hex2bin("a4a2a4a2"), "EUC-JP"))); /* あ */ 71echo "== Longer strings ==\n"; 72var_dump(mb_ucfirst("э" . str_repeat("A", 65536)) === "Э" . str_repeat("A", 65536)); 73var_dump(mb_lcfirst("Э" . str_repeat("A", 65536)) === "э" . str_repeat("A", 65536)); 74?> 75--EXPECT-- 76== Empty String == 77string(0) "" 78string(0) "" 79== ASCII == 80Done mb_ucfirst 81Done mb_lcfirst 82== mb_ucfirst == 83string(6) "Ab" 84string(9) "ABS" 85string(12) "Đắt quá!" 86string(9) "აბგ" 87string(2) "Lj" 88== mb_lcfirst == 89string(9) "aBS" 90string(9) "xin chào" 91string(12) "đẹp quá!" 92== SJIS == 93string(12) "826482828289" 94string(12) "828582618268" 95string(4) "8441" 96string(4) "8471" 97string(4) "839f" 98string(4) "83bf" 99string(4) "82a0" 100string(8) "839f8471" 101string(8) "83bf8441" 102== EUC-JP == 103string(4) "a6b8" 104string(4) "a6d8" 105string(8) "a4a2a4a2" 106== Longer strings == 107bool(true) 108bool(true) 109