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