1--TEST-- 2Test mb_strtolower() function : usage variations - pass mixed ASCII and non-ASCII strings 3--SKIPIF-- 4<?php 5extension_loaded('mbstring') or die('skip'); 6function_exists('mb_strtolower') or die("skip mb_strtolower() is not available in this build"); 7?> 8--FILE-- 9<?php 10/* 11 * Pass a Japanese string and a mixed Japanese and ASCII string to mb_strtolower 12 * to check correct conversion is occurring (Japanese characters should not be converted). 13 */ 14 15echo "*** Testing mb_strtolower() : usage variations ***\n"; 16 17$string_mixed = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCUEhQLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg=='); 18$string_mixed_lower = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCcGhwLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg=='); 19$string_all_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC'); 20 21echo "\n-- Mixed string (mulitbyte and ASCII characters) --\n"; 22$a = mb_strtolower($string_mixed, 'UTF-8'); 23var_dump(base64_encode($a)); 24if ($a == $string_mixed_lower) { 25 echo "Correctly Converted\n"; 26} else { 27 echo "Incorrectly Converted\n"; 28} 29 30echo "\n-- Multibyte Only String--\n"; 31$b = mb_strtolower($string_all_mb, 'UTF-8'); 32var_dump(base64_encode($b)); 33if ($b == $string_all_mb) { // Japanese characters only - should not be any conversion 34 echo "Correctly Converted\n"; 35} else { 36 echo "Incorrectly Converted\n"; 37} 38 39echo "Done"; 40?> 41--EXPECT-- 42*** Testing mb_strtolower() : usage variations *** 43 44-- Mixed string (mulitbyte and ASCII characters) -- 45string(80) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCcGhwLiAwMTIzNO+8le+8lu+8l++8mO+8meOAgg==" 46Correctly Converted 47 48-- Multibyte Only String-- 49string(40) "5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CC" 50Correctly Converted 51Done 52