cvs: php4 /ext/mbstring/tests 001.phpt 002.inc 002.phpt 003.inc 003.phpt 004.inc 004.phpt 005.inc 005.phpt 006.inc 006.phpt 007.inc 007.phpt 008.inc
008.phpt 009.inc 009.phpt 010.inc 010.phpt 011.inc 011.phpt 012.inc 012.phpt 013.inc 013.phpt 014.inc 014.phpt 015.inc 015.phpt 016.inc 016.phpt
017.inc 017.phpt 018.inc 018.phpt 019.inc 019.phpt common.php skipif.inc
| From: | Yasuo Ohgaki | Date: | Sat, 02 Mar 2002 10:44:57 +0000 |
| Subject: | cvs: php4 /ext/mbstring/tests 001.phpt 002.inc 002.phpt 003.inc 003.phpt 004.inc 004.phpt 005.inc 005.phpt 006.inc 006.phpt 007.inc 007.phpt 008.inc 008.phpt 009.inc 009.phpt 010.inc 010.phpt 011.inc 011.phpt 012.inc 012.phpt 013.inc 013.phpt 014.inc 014.phpt 015.inc 015.phpt 016.inc 016.phpt 017.inc 017.phpt 018.inc 018.phpt 019.inc 019.phpt common.php skipif.inc |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-9566@lists.php.net to get a copy of this message | ||
yohgaki Sat Mar 2 05:44:57 2002 EDT
Added files:
/php4/ext/mbstring/tests 001.phpt 002.inc 002.phpt 003.inc 003.phpt
004.inc 004.phpt 005.inc 005.phpt 006.inc
006.phpt 007.inc 007.phpt 008.inc 008.phpt
009.inc 009.phpt 010.inc 010.phpt 011.inc
011.phpt 012.inc 012.phpt 013.inc 013.phpt
014.inc 014.phpt 015.inc 015.phpt 016.inc
016.phpt 017.inc 017.phpt 018.inc 018.phpt
019.inc 019.phpt common.php skipif.inc
Log:
Add mbstring tests
Index: php4/ext/mbstring/tests/001.phpt +++ php4/ext/mbstring/tests/001.phpt --TEST-- Simple multi-byte print test (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php /* * Test basic PHP functions to check if it works with multi-byte chars */ // EUC-JP strings $s1 = "¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£"; $s2 = "¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£"; // print directly echo "echo: ".$s1.$s2."\n"; print("print: ".$s1.$s2."\n"); printf("printf: %s%s\n",$s1, $s2); echo sprintf("sprintf: %s%s\n",$s1, $s2); // Assign to var $s3 = $s1.$s2."\n"; echo "echo: ".$s3; ?> --EXPECT-- echo: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ print: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ printf: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ sprintf: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ echo: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ Index: php4/ext/mbstring/tests/002.inc +++ php4/ext/mbstring/tests/002.inc <?php // TODO: //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $r = mb_internal_encoding('EUC-JP'); ($r === TRUE) ? print "OK_EUC-JP_SET\n" : print "NG_EUC-JP_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // UTF-8 $r = mb_internal_encoding('UTF-8'); ($r === TRUE) ? print "OK_UTF-8_SET\n" : print "NG_UTF-8_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // ASCII $r = mb_internal_encoding('ASCII'); ($r === TRUE) ? print "OK_ASCII_SET\n" : print "NG_ASCII_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // Invalid Parameter print "== INVALID PARAMETER ==\n"; // Note: Other than string type, PHP raise both Notice and Warning $r = mb_internal_encoding('BAD'); ($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; $r = mb_internal_encoding($t_ary); ($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; $r = mb_internal_encoding($t_obj); ($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; ?> Index: php4/ext/mbstring/tests/002.phpt +++ php4/ext/mbstring/tests/002.phpt --TEST-- mb_internal_encoding() test --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('002.inc'); ?> --EXPECT-- OK_EUC-JP_SET EUC-JP OK_UTF-8_SET UTF-8 OK_ASCII_SET ASCII == INVALID PARAMETER == ERR: Warning OK_BAD_SET ASCII ERR: Notice ERR: Warning OK_BAD_ARY_SET ASCII ERR: Notice ERR: Warning OK_BAD_OBJ_SET ASCII Index: php4/ext/mbstring/tests/003.inc +++ php4/ext/mbstring/tests/003.inc <?php // TODO: This is not a real test.... Need to change so that it does real testing //$debug = true; ini_set('include_path','.'); include_once('common.php'); $ini = ini_get('mbstring.http_input'); // It must be url encoded.... // echo vars echo "$a\n"; echo "$b\n"; // Get encoding $enc = mb_http_input('P'); // check if (empty($ini)) { // Must be pass if ($enc === 'pass') { echo "OK\n"; } else { echo "NG\n"; } } else { // Some encoding echo "This heppens when php.ini-dist is not used\n"; } ?> Index: php4/ext/mbstring/tests/003.phpt +++ php4/ext/mbstring/tests/003.phpt --TEST-- mb_http_input() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- a=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --GET-- b=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --FILE-- <?php include('003.inc'); ?> --EXPECT-- ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê OK Index: php4/ext/mbstring/tests/004.inc +++ php4/ext/mbstring/tests/004.inc <?php //TODO: Add more encoding. Wrong paramter type test. //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Set HTTP output encoding to ASCII $r = mb_http_output('ASCII'); ($r === TRUE) ? print "OK_ASCII_SET\n" : print "NG_ASCII_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to SJIS $r = mb_http_output('SJIS'); ($r === TRUE) ? print "OK_SJIS_SET\n" : print "NG_SJIS_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to JIS $r = mb_http_output('JIS'); ($r === TRUE) ? print "OK_JIS_SET\n" : print "NG_JIS_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to UTF8 $r = mb_http_output('UTF-8'); ($r === TRUE) ? print "OK_UTF-8_SET\n" : print "NG_UTF-8_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to EUC-JP $r = mb_http_output('EUC-JP'); ($r === TRUE) ? print "OK_EUC-JP_SET\n" : print "NG_EUC-JP_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Invalid parameters print "== INVALID PARAMETER ==\n"; // Note: Bad string raise Warning. Bad Type raise Notice (Type Conversion) and Warning.... $r = mb_http_output('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_http_output(); print "$enc\n"; $r = mb_http_output($t_ary); ($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n"; $enc = mb_http_output(); print "$enc\n"; $r = mb_http_output($t_obj); ($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n"; $enc = mb_http_output(); print "$enc\n"; ?> Index: php4/ext/mbstring/tests/004.phpt +++ php4/ext/mbstring/tests/004.phpt --TEST-- mb_http_output() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('004.inc'); ?> --EXPECT-- OK_ASCII_SET ASCII OK_SJIS_SET SJIS OK_JIS_SET JIS OK_UTF-8_SET UTF-8 OK_EUC-JP_SET EUC-JP == INVALID PARAMETER == ERR: Warning OK_BAD_SET EUC-JP ERR: Notice ERR: Warning OK_BAD_ARY_SET EUC-JP ERR: Notice ERR: Warning OK_BAD_OBJ_SET EUC-JP Index: php4/ext/mbstring/tests/005.inc +++ php4/ext/mbstring/tests/005.inc <?php //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Set order to "auto" $r = mb_detect_order('auto'); ($r === TRUE) ? print "OK_AUTO\n" : print "NG_AUTO\n"; print implode(', ', mb_detect_order()) . "\n"; // Set order by string $r = mb_detect_order('SJIS,EUC-JP,JIS,UTF-8'); ($r === TRUE) ? print "OK_STR\n" : print "NG_STR\n"; print implode(', ', mb_detect_order()) . "\n"; // Set order by array $a[] = 'ASCII'; $a[] = 'JIS'; $a[] = 'EUC-JP'; $a[] = 'UTF-8'; $r = mb_detect_order($a); ($r === TRUE) ? print "OK_ARRAY\n" : print "NG_ARRAY\n"; print implode(', ', mb_detect_order()) . "\n"; // Set invalid encoding. Should fail. print "== INVALID PARAMETER ==\n"; $r = mb_detect_order('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_STR\n" : print "NG_BAD_STR\n"; print implode(', ', mb_detect_order()) . "\n"; $a[] = 'BAD_NAME'; $r = mb_detect_order($a); ($r === FALSE) ? print "OK_BAD_ARRAY\n" : print "NG_BAD_ARRAY\n"; print implode(', ', mb_detect_order()) . "\n"; ?> Index: php4/ext/mbstring/tests/005.phpt +++ php4/ext/mbstring/tests/005.phpt --TEST-- mb_detect_order() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('005.inc'); ?> --EXPECT-- OK_AUTO ASCII, JIS, UTF-8, EUC-JP, SJIS OK_STR SJIS, EUC-JP, JIS, UTF-8 OK_ARRAY ASCII, JIS, EUC-JP, UTF-8 == INVALID PARAMETER == OK_BAD_STR ASCII, JIS, EUC-JP, UTF-8 OK_BAD_ARRAY ASCII, JIS, EUC-JP, UTF-8 Index: php4/ext/mbstring/tests/006.inc +++ php4/ext/mbstring/tests/006.inc <?php //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Note: It does not return TRUE/FALSE for setting char // Use Unicode val $r = mb_substitute_character(0x3013); //$r = mb_substitute_character('U+3013'); ($r === TRUE) ? print "OK_UTF\n" : print("NG_UTF: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Use "long" $r = mb_substitute_character('long'); ($r === TRUE) ? print "OK_LONG\n" : print("NG_LONG: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Use "none" $r = mb_substitute_character('none'); ($r === TRUE) ? print "OK_NONE\n" : print("NG_NONE: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Set invalid string. Should fail. print "== INVALID PARAMETER ==\n"; $r = mb_substitute_character('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_NAME\n" : print("NG_BAD_NAME: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; ?> Index: php4/ext/mbstring/tests/006.phpt +++ php4/ext/mbstring/tests/006.phpt --TEST-- mb_substitute_character() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('006.inc'); ?> --EXPECT-- OK_UTF 12307 OK_LONG long OK_NONE none == INVALID PARAMETER == ERR: OK_BAD_NAME Index: php4/ext/mbstring/tests/007.inc +++ php4/ext/mbstring/tests/007.inc <?php // TODO: Do real test // EUC-JP $euc_jp = "¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£"; mb_http_output('EUC-JP') or print("mb_http_output() failed\n"); ob_start('mb_output_handler'); echo $euc_jp; ob_end_flush(); ?> Index: php4/ext/mbstring/tests/007.phpt +++ php4/ext/mbstring/tests/007.phpt --TEST-- mb_output_handler() (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('skipif.inc'); ?> --EXPECT-- ¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£ Index: php4/ext/mbstring/tests/008.inc +++ php4/ext/mbstring/tests/008.inc <?php // TODO: Add more encoding names //$debug=true; ini_set('include_path','.'); include_once('common.php'); $str = mb_preferred_mime_name('sjis-win'); echo "$str\n"; $str = mb_preferred_mime_name('SJIS'); echo "$str\n"; $str = mb_preferred_mime_name('EUC-JP'); echo "$str\n"; $str = mb_preferred_mime_name('UTF-8'); echo "$str\n"; $str = mb_preferred_mime_name('ISO-2022-JP'); echo "$str\n"; $str = mb_preferred_mime_name('JIS'); echo "$str\n"; $str = mb_preferred_mime_name('ISO-8859-1'); echo "$str\n"; $str = mb_preferred_mime_name('UCS2'); echo "$str\n"; $str = mb_preferred_mime_name('UCS4'); echo "$str\n"; echo "== INVALID PARAMETER ==\n"; // Invalid name $r = mb_preferred_mime_name('BAD_NAME'); ($r === FALSE) ? print("OK_BAD_NAME\n") : print("NG_BAD_NAME\n"); ?> Index: php4/ext/mbstring/tests/008.phpt +++ php4/ext/mbstring/tests/008.phpt --TEST-- mb_preferred_mime_name() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('008.inc'); ?> --EXPECT-- Shift_JIS Shift_JIS EUC-JP UTF-8 ISO-2022-JP ISO-2022-JP ISO-8859-1 UCS-2 UCS-4 == INVALID PARAMETER == ERR: Warning OK_BAD_NAME Index: php4/ext/mbstring/tests/009.inc +++ php4/ext/mbstring/tests/009.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // restore detect_order to 'auto' mb_detect_order('auto'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; $ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789'; // ASCII echo "== ASCII ==\n"; print mb_strlen($ascii,'ASCII') . "\n"; print mb_strlen($ascii) . "\n"; // EUC-JP echo "== EUC-JP ==\n"; print mb_strlen($euc_jp,'EUC-JP') . "\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strlen($euc_jp) . "\n"; // SJIS echo "== SJIS ==\n"; $sjis = mb_convert_encoding($euc_jp, 'SJIS'); print mb_strlen($sjis,'SJIS') . "\n"; mb_internal_encoding('SJIS') or print("mb_internal_encoding() failed\n"); print mb_strlen($sjis) . "\n"; // JIS // Note: either convert_encoding or strlen has problem echo "== JIS ==\n"; $jis = mb_convert_encoding($euc_jp, 'JIS'); print mb_strlen($jis,'JIS') . "\n"; mb_internal_encoding('JIS') or print("mb_internal_encoding() failed\n"); print mb_strlen($jis) . "\n"; // UTF-8 // Note: either convert_encoding or strlen has problem echo "== UTF-8 ==\n"; $utf8 = mb_convert_encoding($euc_jp, 'UTF-8'); print mb_strlen($utf8,'UTF-8') . "\n"; mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); print mb_strlen($utf8) . "\n"; // Wrong Parameters echo "== WRONG PARAMETERS ==\n"; // Array // Note: PHP Notice, but returns some value $r = mb_strlen($t_ary); echo $r."\n"; // Object // Note: PHP Notice, but returns some value $r = mb_strlen($t_obj); echo $r."\n"; // Wrong encoding mb_internal_encoding('EUC-JP'); $r = mb_strlen($euc_jp, 'BAD_NAME'); echo $r."\n"; ?> Index: php4/ext/mbstring/tests/009.phpt +++ php4/ext/mbstring/tests/009.phpt --TEST-- mb_strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('009.inc'); ?> --EXPECT-- == ASCII == 40 40 == EUC-JP == 43 43 == SJIS == 43 43 == JIS == 43 43 == UTF-8 == 43 43 == WRONG PARAMETERS == ERR: Notice ERR: Notice ERR: Warning Index: php4/ext/mbstring/tests/010.inc +++ php4/ext/mbstring/tests/010.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== POSITIVE OFFSET ==\n"; print mb_strpos($euc_jp,'ÆüËܸì', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp,'ÆüËܸì', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 15, 'EUC-JP') . "\n"; // Negative offset // Note: PHP Warning - offset is negative. // Note: For offset(-15). It does not return position of latter string. (ie the same result as -50) echo "== NEGATIVE OFFSET ==\n"; print mb_strpos($euc_jp,'ÆüËܸì', -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp,'ÆüËܸì', -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, -50, 'EUC-JP') . "\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); $r = mb_strpos($euc_jp,'ÆüËܸì', 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, '0', 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; // Note: Returned NULL string // echo gettype($r). ' val '. $r ."\n"; // Non-existent echo "== NON-EXISTENT ==\n"; $r = mb_strpos($euc_jp, '´Ú¹ñ¸ì', 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, "\n", 'EUC-JP'); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp,'ÆüËܸì', 0) . "\n"; print mb_strpos($euc_jp, '0', 0) . "\n"; print mb_strpos($euc_jp, 3, 0) . "\n"; print mb_strpos($euc_jp, 0, 0) . "\n"; $r = mb_strpos($euc_jp,'´Ú¹ñ¸ì', 0); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp,"\n", 0); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No offset and encoding parameter echo "== NO OFFSET AND ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp,'ÆüËܸì') . "\n"; print mb_strpos($euc_jp, '0') . "\n"; print mb_strpos($euc_jp, 3) . "\n"; print mb_strpos($euc_jp, 0) . "\n"; $r = mb_strpos($euc_jp,'´Ú¹ñ¸ì'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp,"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // Invalid Parameters echo "== INVALID PARAMETER TEST ==\n"; $r = mb_strpos($euc_jp,'','EUC-JP'); ($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n"); $r = mb_strpos($euc_jp, $t_ary, 'EUC-JP'); ($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n"); $r = mb_strpos($euc_jp, $t_obj, 'EUC-JP'); ($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); $r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING'); ($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n"); ?> Index: php4/ext/mbstring/tests/010.phpt +++ php4/ext/mbstring/tests/010.phpt --TEST-- mb_strpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('010.inc'); ?> --EXPECT-- == POSITIVE OFFSET == 10 0 3 0 34 30 33 30 == NEGATIVE OFFSET == 34 30 33 30 10 0 3 0 == OUT OF RANGE == OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE == NON-EXISTENT == OK_STR OK_NEWLINE == NO ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == NO OFFSET AND ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == INVALID PARAMETER TEST == ERR: Warning OK_NULL ERR: Notice OK_ARRAY ERR: Notice OK_OBJECT ERR: Notice OK_BAD_ENCODING Index: php4/ext/mbstring/tests/011.inc +++ php4/ext/mbstring/tests/011.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== WITH ENCODING PARAMETER ==\n"; print mb_strrpos($euc_jp,'ÆüËܸì', 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, '0', 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, 3, 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, 0, 'EUC-JP') . "\n"; $r = mb_strrpos($euc_jp, '´Ú¹ñ¸ì', 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strrpos($euc_jp, "\n", 'EUC-JP'); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strrpos($euc_jp,'ÆüËܸì') . "\n"; print mb_strrpos($euc_jp, '0') . "\n"; print mb_strrpos($euc_jp, 3) . "\n"; print mb_strrpos($euc_jp, 0) . "\n"; $r = mb_strrpos($euc_jp,'´Ú¹ñ¸ì'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strrpos($euc_jp,"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // Invalid Parameters echo "== INVALID PARAMETER TEST ==\n"; $r = mb_strrpos($euc_jp,'','EUC-JP'); ($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n"); $r = mb_strrpos($euc_jp, $t_ary, 'EUC-JP'); ($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n"); $r = mb_strrpos($euc_jp, $t_obj, 'EUC-JP'); ($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); //Note: Notice msg for NULL string might be better. ?> Index: php4/ext/mbstring/tests/011.phpt +++ php4/ext/mbstring/tests/011.phpt --TEST-- mb_strrpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('011.inc'); ?> --EXPECT-- == WITH ENCODING PARAMETER == 34 30 33 30 OK_STR OK_NEWLINE == NO ENCODING PARAMETER == 34 30 33 30 OK_STR OK_NEWLINE == INVALID PARAMETER TEST == ERR: Warning OK_NULL ERR: Notice OK_ARRAY ERR: Notice OK_OBJECT Index: php4/ext/mbstring/tests/012.inc +++ php4/ext/mbstring/tests/012.inc <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_substr($euc_jp, 10, 10,'EUC-JP') . "\n"; print "2: ". mb_substr($euc_jp, 0, 100,'EUC-JP') . "\n"; $str = mb_substr($euc_jp, 100, 10,'EUC-JP'); // Note: returns last character ($str === "") ? print "3 OK\n" : print "NG: $str\n"; $str = mb_substr($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "4 OK: $str\n" : print "NG: $str\n"; ?> Index: php4/ext/mbstring/tests/012.phpt +++ php4/ext/mbstring/tests/012.phpt --TEST-- mb_substr() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('012.inc'); ?> --EXPECT-- 1: ÆüËܸì¤Ç¤¹¡£EUC- 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3 OK 4 OK: 0123¤³¤Îʸ»úÎó¤Ï Index: php4/ext/mbstring/tests/013.inc +++ php4/ext/mbstring/tests/013.inc <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print mb_strcut($euc_jp, 6, 5,'EUC-JP') . "\n"; print mb_strcut($euc_jp, 0, 100,'EUC-JP') . "\n"; $str = mb_strcut($euc_jp, 100, 10,'EUC-JP'); ($str === "") ? print "OK\n" : print "NG: $str\n"; $str = mb_strcut($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "OK: $str\n" : print "NG:\n"; ?> Index: php4/ext/mbstring/tests/013.phpt +++ php4/ext/mbstring/tests/013.phpt --TEST-- mb_strcut() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('013.inc'); ?> --EXPECT-- ¤Îʸ 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ OK OK: 0123¤³¤Îʸ Index: php4/ext/mbstring/tests/014.inc +++ php4/ext/mbstring/tests/014.inc <?php // TODO: Add more encoding //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_strimwidth($euc_jp, 0, 15,'...','EUC-JP') . "\n"; print "2: ". mb_strimwidth($euc_jp, 0, 100,'...','EUC-JP') . "\n"; print "3: ". mb_strimwidth($euc_jp, 15, 100,'...','EUC-JP') . "\n"; // Note: Did not start form -22 offset. Staring from 0. print "4: ". mb_strimwidth($euc_jp,-22, 100,'...','EUC-JP') . "\n"; $str = mb_strimwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === "") ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str !== "") ? print "6 OK: $str\n" : print "NG: $str\n"; ?> Index: php4/ext/mbstring/tests/014.phpt +++ php4/ext/mbstring/tests/014.phpt --TEST-- mb_strimwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('014.inc'); ?> --EXPECT-- 1: 0123¤³¤Îʸ»ú... 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3: ¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 4: EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 5 OK 6 OK: 0123¤³... Index: php4/ext/mbstring/tests/015.inc +++ php4/ext/mbstring/tests/015.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test for single scaler echo "== SCALER TEST ==\n"; $s = $sjis; $encoding = mb_convert_variables('EUC-JP', 'SJIS', $s); print("$encoding\n"); // SJIS print("$s\n"); // Converted to EUC-JP $s = $jis; $encoding = mb_convert_variables('EUC-JP', 'JIS', $s); print("$encoding\n"); // JIS print("$s\n"); // Converted to EUC-JP $s = $euc_jp; $encoding = mb_convert_variables('SJIS', 'EUC-JP', $s); print("$encoding\n"); // EUC-JP print(base64_encode($s)."\n"); // Converted to SJIS (base64 encoded) $s = $euc_jp; $encoding = mb_convert_variables('JIS', 'EUC-JP', $s); print("$encoding\n"); // EUC-JP print(base64_encode($s)."\n"); // Converted to JIS (base64 encoded) // Test for multiple slcaler $s1 = $euc_jp; $s2 = $euc_jp; $s3 = $euc_jp; $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3); print("$encoding\n"); // EUC-JP print("$s1$s2$s3\n"); // Converted to EUC-JP // Note: Mixing encoding in array/object is not supported? // Test for array echo "== ARRAY TEST ==\n"; $a = array($s3, $s2, $s1); $aa = $a; $encoding = mb_convert_variables('EUC-JP', 'auto', $aa); print("$encoding\n"); // EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP $a = array($s1, $s2, $s3); $aa = $a; $encoding = mb_convert_variables('EUC-JP', 'auto', $aa); print("$encoding\n"); // EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP // Test for object echo "== OBJECT TEST ==\n"; class foo { var $s1; var $s2; var $s3; function foo() { global $sjis, $jis, $euc_jp; $this->s1 = $euc_jp; $this->s2 = $euc_jp; $this->s3 = $euc_jp; } } class bar { var $s1; var $s2; var $s3; function bar() { global $sjis, $jis, $euc_jp; $this->s1 = $euc_jp; $this->s2 = $euc_jp; $this->s3 = $euc_jp; } } $o = new foo; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $oo); print("$encoding\n"); // EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP $o = new bar; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $oo); print("$encoding\n"); // EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP // Test for scaler, array and object echo "== SCALER, ARRAY AND OBJECT TEST ==\n"; $s1 = $euc_jp; $s2 = $euc_jp; $s3 = $euc_jp; $aa = $a; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3, $aa, $oo); print("$encoding\n"); // EUC-JP print("$s1$s2$s3\n"); // Converted to EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP ?> Index: php4/ext/mbstring/tests/015.phpt +++ php4/ext/mbstring/tests/015.phpt --TEST-- mb_convert_variables() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('015.inc'); ?> --EXPECT-- == SCALER TEST == SJIS ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ JIS ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== EUC-JP GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == ARRAY TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == OBJECT TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == SCALER, ARRAY AND OBJECT TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ Index: php4/ext/mbstring/tests/016.inc +++ php4/ext/mbstring/tests/016.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test with sigle "form encoding" // Note: For some reason it complains, results are differ. Not reserched. echo "== BASIC TEST ==\n"; $s = $sjis; $s = mb_convert_encoding($s, 'EUC-JP', 'SJIS'); print("EUC-JP: $s\n"); // EUC-JP $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', 'JIS'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', 'EUC-JP'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', 'EUC-JP'); print("JIS: ".base64_encode($s)."\n"); // JIS // Using Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'UTF-8',1=>'EUC-JP', 2=>'SJIS', 3=>'JIS'); $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', $a); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', $a); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', $a); print("JIS: ".base64_encode($s)."\n"); // JIS // Using Detect Order echo "== DETECT ORDER ==\n"; mb_detect_order('auto'); $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS'); print("JIS: ".base64_encode($s)."\n"); // JIS // Invalid(?) Parameters echo "== INVALID PARAMETER ==\n"; $s = mb_convert_encoding(1234, 'EUC-JP'); print("INT: $s\n"); // EUC-JP $s = mb_convert_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'BAD'); print("BAD: $s\n"); // BAD $s = $euc_jp; $s = mb_convert_encoding($s); print("MP: $s\n"); // Missing parameter ?> Index: php4/ext/mbstring/tests/016.phpt +++ php4/ext/mbstring/tests/016.phpt --TEST-- mb_convert_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('016.inc'); ?> --EXPECT-- == BASIC TEST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == ARRAY ENCODING LIST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == DETECT ORDER == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == INVALID PARAMETER == INT: 1234 EUC-JP: ERR: Warning BAD: ERR: Warning MP: Index: php4/ext/mbstring/tests/017.inc +++ php4/ext/mbstring/tests/017.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test with sigle "form encoding" // Note: For some reason it complains, results are differ. Not reserched. echo "== BASIC TEST ==\n"; $s = $sjis; $s = mb_detect_encoding($s, 'SJIS'); print("SJIS: $s\n"); $s = $jis; $s = mb_detect_encoding($s, 'JIS'); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, 'UTF-8,EUC-JP,JIS'); print("EUC-JP: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, 'JIS,EUC-JP'); print("EUC-JP: $s\n"); // Using Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'UTF-8',1=>'EUC-JP', 2=>'SJIS', 3=>'JIS'); // Note: Due to detect order, detected as UTF-8 $s = $jis; $s = mb_detect_encoding($s, $a); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, $a); print("EUC-JP: $s\n"); $s = $sjis; $s = mb_detect_encoding($s, $a); print("SJIS: $s\n"); // Using Detect Order echo "== DETECT ORDER ==\n"; mb_detect_order('auto'); $s = $jis; $s = mb_detect_encoding($s); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s); print("EUC-JP: $s\n"); $s = $sjis; $s = mb_detect_encoding($s); print("SJIS: $s\n"); // Invalid(?) Parameters echo "== INVALID PARAMETER ==\n"; $s = mb_detect_encoding(1234, 'EUC-JP'); print("INT: $s\n"); // EUC-JP $s = mb_detect_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; $s = mb_detect_encoding($s, 'BAD'); print("BAD: $s\n"); // BAD $s = $euc_jp; $s = mb_detect_encoding(); print("MP: $s\n"); // Missing parameter ?> Index: php4/ext/mbstring/tests/017.phpt +++ php4/ext/mbstring/tests/017.phpt --TEST-- mb_detect_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('017.inc'); ?> --EXPECT-- == BASIC TEST == SJIS: SJIS JIS: JIS EUC-JP: EUC-JP EUC-JP: EUC-JP == ARRAY ENCODING LIST == JIS: UTF-8 EUC-JP: EUC-JP SJIS: SJIS == DETECT ORDER == JIS: JIS EUC-JP: EUC-JP SJIS: SJIS == INVALID PARAMETER == INT: EUC-JP EUC-JP: EUC-JP ERR: Warning BAD: EUC-JP ERR: Warning MP: Index: php4/ext/mbstring/tests/018.inc +++ php4/ext/mbstring/tests/018.inc <?php // TODO: Add more encoding, strings..... //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; /* print "2: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; print "3: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; // Note: Did not start form -22 offset. Staring from 0. print "4: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; $str = mb_strwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === "") ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str !== "") ? print "6 OK: $str\n" : print "NG: $str\n"; */ ?> Index: php4/ext/mbstring/tests/018.phpt +++ php4/ext/mbstring/tests/018.phpt --TEST-- mb_strwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('018.inc'); ?> --EXPECT-- 1: 68 Index: php4/ext/mbstring/tests/019.inc +++ php4/ext/mbstring/tests/019.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // restore detect_order to 'auto' mb_detect_order('auto'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; $ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789'; // ASCII echo "== ASCII ==\n"; print strlen($ascii,'ASCII') . "\n"; print strlen($ascii) . "\n"; // EUC-JP echo "== EUC-JP ==\n"; print strlen($euc_jp,'EUC-JP') . "\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print strlen($euc_jp) . "\n"; // SJIS echo "== SJIS ==\n"; $sjis = mb_convert_encoding($euc_jp, 'SJIS'); print strlen($sjis,'SJIS') . "\n"; mb_internal_encoding('SJIS') or print("mb_internal_encoding() failed\n"); print strlen($sjis) . "\n"; // JIS // Note: either convert_encoding or strlen has problem echo "== JIS ==\n"; $jis = mb_convert_encoding($euc_jp, 'JIS'); print strlen($jis,'JIS') . "\n"; mb_internal_encoding('JIS') or print("mb_internal_encoding() failed\n"); print strlen($jis) . "\n"; // UTF-8 // Note: either convert_encoding or strlen has problem echo "== UTF-8 ==\n"; $utf8 = mb_convert_encoding($euc_jp, 'UTF-8'); print strlen($utf8,'UTF-8') . "\n"; mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); print strlen($utf8) . "\n"; // Wrong Parameters echo "== WRONG PARAMETERS ==\n"; // Array // Note: PHP Notice, but returns some value $r = strlen($t_ary); echo $r."\n"; // Object // Note: PHP Notice, but returns some value $r = strlen($t_obj); echo $r."\n"; // Wrong encoding mb_internal_encoding('EUC-JP'); $r = strlen($euc_jp, 'BAD_NAME'); echo $r."\n"; ?> Index: php4/ext/mbstring/tests/019.phpt +++ php4/ext/mbstring/tests/019.phpt --TEST-- strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('019.inc'); ?> --EXPECT-- == ASCII == ERR: Warning 40 == EUC-JP == ERR: Warning 72 == SJIS == ERR: Warning 72 == JIS == ERR: Warning 121 == UTF-8 == ERR: Warning 174 == WRONG PARAMETERS == ERR: Notice 5 ERR: Notice 6 ERR: Warning Index: php4/ext/mbstring/tests/common.php +++ php4/ext/mbstring/tests/common.php <?php /* * Common definition and Settings */ // Custom Error Hanlder for testing function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { global $debug; $err_type = array ( 1 => "Error", // E_ERROR 2 => "Warning", // E_WARINING 4 => "Parsing Error", // E_PARSE 8 => "Notice", // E_NOTICE 16 => "Core Error", // E_CORE_ERROR 32 => "Core Warning", // E_CORE_WARNING 64 => "Compile Error", // E_COMPILE_ERROR 128 => "Compile Warning", // E_COMPILE_WARNING 256 => "User Error", // E_USER_ERROR 512 => "User Warning", // E_USER_WARMING 1024=> "User Notice" // E_USER_NOTICE ); if (!empty($debug)) { printf("%s: %s (%d)\n", $err_type[$err_no], $err_msg, $linenum); } else { printf("ERR: %s\n",$err_type[$err_no]); } } set_error_handler('test_error_handler'); // Var def for testing $t_ary = array( 's1' => 'ÆüËܸìEUC-JP¤Îʸ»úÎó', 's2' => 'English Text' ); class tc { var $s1 = 'ÆüËܸìEUC-JP¤Îʸ»úÎó'; var $s2 = 'English Text'; function tc() { } } $t_obj = new tc; ?> Index: php4/ext/mbstring/tests/skipif.inc +++ php4/ext/mbstring/tests/skipif.inc <?php // This script prints "skip" if condition does not meet. if (!extension_loaded("mbstring") && ini_get("enable_dl")) { $dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so"; @dl("iconv$dlext"); } if (!extension_loaded("mbstring")) { die("skip\n"); } ?>
Index: php4/ext/mbstring/tests/001.phpt +++ php4/ext/mbstring/tests/001.phpt --TEST-- Simple multi-byte print test (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php /* * Test basic PHP functions to check if it works with multi-byte chars */ // EUC-JP strings $s1 = "¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£"; $s2 = "¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£"; // print directly echo "echo: ".$s1.$s2."\n"; print("print: ".$s1.$s2."\n"); printf("printf: %s%s\n",$s1, $s2); echo sprintf("sprintf: %s%s\n",$s1, $s2); // Assign to var $s3 = $s1.$s2."\n"; echo "echo: ".$s3; ?> --EXPECT-- echo: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ print: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ printf: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ sprintf: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ echo: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£ Index: php4/ext/mbstring/tests/002.inc +++ php4/ext/mbstring/tests/002.inc <?php // TODO: //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $r = mb_internal_encoding('EUC-JP'); ($r === TRUE) ? print "OK_EUC-JP_SET\n" : print "NG_EUC-JP_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // UTF-8 $r = mb_internal_encoding('UTF-8'); ($r === TRUE) ? print "OK_UTF-8_SET\n" : print "NG_UTF-8_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // ASCII $r = mb_internal_encoding('ASCII'); ($r === TRUE) ? print "OK_ASCII_SET\n" : print "NG_ASCII_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; // Invalid Parameter print "== INVALID PARAMETER ==\n"; // Note: Other than string type, PHP raise both Notice and Warning $r = mb_internal_encoding('BAD'); ($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; $r = mb_internal_encoding($t_ary); ($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; $r = mb_internal_encoding($t_obj); ($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n"; $enc = mb_internal_encoding(); print "$enc\n"; ?> Index: php4/ext/mbstring/tests/002.phpt +++ php4/ext/mbstring/tests/002.phpt --TEST-- mb_internal_encoding() test --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('002.inc'); ?> --EXPECT-- OK_EUC-JP_SET EUC-JP OK_UTF-8_SET UTF-8 OK_ASCII_SET ASCII == INVALID PARAMETER == ERR: Warning OK_BAD_SET ASCII ERR: Notice ERR: Warning OK_BAD_ARY_SET ASCII ERR: Notice ERR: Warning OK_BAD_OBJ_SET ASCII Index: php4/ext/mbstring/tests/003.inc +++ php4/ext/mbstring/tests/003.inc <?php // TODO: This is not a real test.... Need to change so that it does real testing //$debug = true; ini_set('include_path','.'); include_once('common.php'); $ini = ini_get('mbstring.http_input'); // It must be url encoded.... // echo vars echo "$a\n"; echo "$b\n"; // Get encoding $enc = mb_http_input('P'); // check if (empty($ini)) { // Must be pass if ($enc === 'pass') { echo "OK\n"; } else { echo "NG\n"; } } else { // Some encoding echo "This heppens when php.ini-dist is not used\n"; } ?> Index: php4/ext/mbstring/tests/003.phpt +++ php4/ext/mbstring/tests/003.phpt --TEST-- mb_http_input() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- a=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --GET-- b=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --FILE-- <?php include('003.inc'); ?> --EXPECT-- ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê OK Index: php4/ext/mbstring/tests/004.inc +++ php4/ext/mbstring/tests/004.inc <?php //TODO: Add more encoding. Wrong paramter type test. //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Set HTTP output encoding to ASCII $r = mb_http_output('ASCII'); ($r === TRUE) ? print "OK_ASCII_SET\n" : print "NG_ASCII_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to SJIS $r = mb_http_output('SJIS'); ($r === TRUE) ? print "OK_SJIS_SET\n" : print "NG_SJIS_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to JIS $r = mb_http_output('JIS'); ($r === TRUE) ? print "OK_JIS_SET\n" : print "NG_JIS_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to UTF8 $r = mb_http_output('UTF-8'); ($r === TRUE) ? print "OK_UTF-8_SET\n" : print "NG_UTF-8_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Set HTTP output encoding to EUC-JP $r = mb_http_output('EUC-JP'); ($r === TRUE) ? print "OK_EUC-JP_SET\n" : print "NG_EUC-JP_SET\n"; $enc = mb_http_output(); print "$enc\n"; // Invalid parameters print "== INVALID PARAMETER ==\n"; // Note: Bad string raise Warning. Bad Type raise Notice (Type Conversion) and Warning.... $r = mb_http_output('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_SET\n" : print "NG_BAD_SET\n"; $enc = mb_http_output(); print "$enc\n"; $r = mb_http_output($t_ary); ($r === FALSE) ? print "OK_BAD_ARY_SET\n" : print "NG_BAD_ARY_SET\n"; $enc = mb_http_output(); print "$enc\n"; $r = mb_http_output($t_obj); ($r === FALSE) ? print "OK_BAD_OBJ_SET\n" : print "NG_BAD_OBJ_SET\n"; $enc = mb_http_output(); print "$enc\n"; ?> Index: php4/ext/mbstring/tests/004.phpt +++ php4/ext/mbstring/tests/004.phpt --TEST-- mb_http_output() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('004.inc'); ?> --EXPECT-- OK_ASCII_SET ASCII OK_SJIS_SET SJIS OK_JIS_SET JIS OK_UTF-8_SET UTF-8 OK_EUC-JP_SET EUC-JP == INVALID PARAMETER == ERR: Warning OK_BAD_SET EUC-JP ERR: Notice ERR: Warning OK_BAD_ARY_SET EUC-JP ERR: Notice ERR: Warning OK_BAD_OBJ_SET EUC-JP Index: php4/ext/mbstring/tests/005.inc +++ php4/ext/mbstring/tests/005.inc <?php //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Set order to "auto" $r = mb_detect_order('auto'); ($r === TRUE) ? print "OK_AUTO\n" : print "NG_AUTO\n"; print implode(', ', mb_detect_order()) . "\n"; // Set order by string $r = mb_detect_order('SJIS,EUC-JP,JIS,UTF-8'); ($r === TRUE) ? print "OK_STR\n" : print "NG_STR\n"; print implode(', ', mb_detect_order()) . "\n"; // Set order by array $a[] = 'ASCII'; $a[] = 'JIS'; $a[] = 'EUC-JP'; $a[] = 'UTF-8'; $r = mb_detect_order($a); ($r === TRUE) ? print "OK_ARRAY\n" : print "NG_ARRAY\n"; print implode(', ', mb_detect_order()) . "\n"; // Set invalid encoding. Should fail. print "== INVALID PARAMETER ==\n"; $r = mb_detect_order('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_STR\n" : print "NG_BAD_STR\n"; print implode(', ', mb_detect_order()) . "\n"; $a[] = 'BAD_NAME'; $r = mb_detect_order($a); ($r === FALSE) ? print "OK_BAD_ARRAY\n" : print "NG_BAD_ARRAY\n"; print implode(', ', mb_detect_order()) . "\n"; ?> Index: php4/ext/mbstring/tests/005.phpt +++ php4/ext/mbstring/tests/005.phpt --TEST-- mb_detect_order() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('005.inc'); ?> --EXPECT-- OK_AUTO ASCII, JIS, UTF-8, EUC-JP, SJIS OK_STR SJIS, EUC-JP, JIS, UTF-8 OK_ARRAY ASCII, JIS, EUC-JP, UTF-8 == INVALID PARAMETER == OK_BAD_STR ASCII, JIS, EUC-JP, UTF-8 OK_BAD_ARRAY ASCII, JIS, EUC-JP, UTF-8 Index: php4/ext/mbstring/tests/006.inc +++ php4/ext/mbstring/tests/006.inc <?php //$debug = true; ini_set('include_path','.'); include_once('common.php'); // Note: It does not return TRUE/FALSE for setting char // Use Unicode val $r = mb_substitute_character(0x3013); //$r = mb_substitute_character('U+3013'); ($r === TRUE) ? print "OK_UTF\n" : print("NG_UTF: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Use "long" $r = mb_substitute_character('long'); ($r === TRUE) ? print "OK_LONG\n" : print("NG_LONG: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Use "none" $r = mb_substitute_character('none'); ($r === TRUE) ? print "OK_NONE\n" : print("NG_NONE: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; // Set invalid string. Should fail. print "== INVALID PARAMETER ==\n"; $r = mb_substitute_character('BAD_NAME'); ($r === FALSE) ? print "OK_BAD_NAME\n" : print("NG_BAD_NAME: ".gettype($r)." $r\n"); print mb_substitute_character() . "\n"; ?> Index: php4/ext/mbstring/tests/006.phpt +++ php4/ext/mbstring/tests/006.phpt --TEST-- mb_substitute_character() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('006.inc'); ?> --EXPECT-- OK_UTF 12307 OK_LONG long OK_NONE none == INVALID PARAMETER == ERR: OK_BAD_NAME Index: php4/ext/mbstring/tests/007.inc +++ php4/ext/mbstring/tests/007.inc <?php // TODO: Do real test // EUC-JP $euc_jp = "¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£"; mb_http_output('EUC-JP') or print("mb_http_output() failed\n"); ob_start('mb_output_handler'); echo $euc_jp; ob_end_flush(); ?> Index: php4/ext/mbstring/tests/007.phpt +++ php4/ext/mbstring/tests/007.phpt --TEST-- mb_output_handler() (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('skipif.inc'); ?> --EXPECT-- ¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£ Index: php4/ext/mbstring/tests/008.inc +++ php4/ext/mbstring/tests/008.inc <?php // TODO: Add more encoding names //$debug=true; ini_set('include_path','.'); include_once('common.php'); $str = mb_preferred_mime_name('sjis-win'); echo "$str\n"; $str = mb_preferred_mime_name('SJIS'); echo "$str\n"; $str = mb_preferred_mime_name('EUC-JP'); echo "$str\n"; $str = mb_preferred_mime_name('UTF-8'); echo "$str\n"; $str = mb_preferred_mime_name('ISO-2022-JP'); echo "$str\n"; $str = mb_preferred_mime_name('JIS'); echo "$str\n"; $str = mb_preferred_mime_name('ISO-8859-1'); echo "$str\n"; $str = mb_preferred_mime_name('UCS2'); echo "$str\n"; $str = mb_preferred_mime_name('UCS4'); echo "$str\n"; echo "== INVALID PARAMETER ==\n"; // Invalid name $r = mb_preferred_mime_name('BAD_NAME'); ($r === FALSE) ? print("OK_BAD_NAME\n") : print("NG_BAD_NAME\n"); ?> Index: php4/ext/mbstring/tests/008.phpt +++ php4/ext/mbstring/tests/008.phpt --TEST-- mb_preferred_mime_name() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('008.inc'); ?> --EXPECT-- Shift_JIS Shift_JIS EUC-JP UTF-8 ISO-2022-JP ISO-2022-JP ISO-8859-1 UCS-2 UCS-4 == INVALID PARAMETER == ERR: Warning OK_BAD_NAME Index: php4/ext/mbstring/tests/009.inc +++ php4/ext/mbstring/tests/009.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // restore detect_order to 'auto' mb_detect_order('auto'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; $ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789'; // ASCII echo "== ASCII ==\n"; print mb_strlen($ascii,'ASCII') . "\n"; print mb_strlen($ascii) . "\n"; // EUC-JP echo "== EUC-JP ==\n"; print mb_strlen($euc_jp,'EUC-JP') . "\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strlen($euc_jp) . "\n"; // SJIS echo "== SJIS ==\n"; $sjis = mb_convert_encoding($euc_jp, 'SJIS'); print mb_strlen($sjis,'SJIS') . "\n"; mb_internal_encoding('SJIS') or print("mb_internal_encoding() failed\n"); print mb_strlen($sjis) . "\n"; // JIS // Note: either convert_encoding or strlen has problem echo "== JIS ==\n"; $jis = mb_convert_encoding($euc_jp, 'JIS'); print mb_strlen($jis,'JIS') . "\n"; mb_internal_encoding('JIS') or print("mb_internal_encoding() failed\n"); print mb_strlen($jis) . "\n"; // UTF-8 // Note: either convert_encoding or strlen has problem echo "== UTF-8 ==\n"; $utf8 = mb_convert_encoding($euc_jp, 'UTF-8'); print mb_strlen($utf8,'UTF-8') . "\n"; mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); print mb_strlen($utf8) . "\n"; // Wrong Parameters echo "== WRONG PARAMETERS ==\n"; // Array // Note: PHP Notice, but returns some value $r = mb_strlen($t_ary); echo $r."\n"; // Object // Note: PHP Notice, but returns some value $r = mb_strlen($t_obj); echo $r."\n"; // Wrong encoding mb_internal_encoding('EUC-JP'); $r = mb_strlen($euc_jp, 'BAD_NAME'); echo $r."\n"; ?> Index: php4/ext/mbstring/tests/009.phpt +++ php4/ext/mbstring/tests/009.phpt --TEST-- mb_strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('009.inc'); ?> --EXPECT-- == ASCII == 40 40 == EUC-JP == 43 43 == SJIS == 43 43 == JIS == 43 43 == UTF-8 == 43 43 == WRONG PARAMETERS == ERR: Notice ERR: Notice ERR: Warning Index: php4/ext/mbstring/tests/010.inc +++ php4/ext/mbstring/tests/010.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== POSITIVE OFFSET ==\n"; print mb_strpos($euc_jp,'ÆüËܸì', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp,'ÆüËܸì', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 15, 'EUC-JP') . "\n"; // Negative offset // Note: PHP Warning - offset is negative. // Note: For offset(-15). It does not return position of latter string. (ie the same result as -50) echo "== NEGATIVE OFFSET ==\n"; print mb_strpos($euc_jp,'ÆüËܸì', -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, -15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp,'ÆüËܸì', -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, '0', -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, -50, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, -50, 'EUC-JP') . "\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); $r = mb_strpos($euc_jp,'ÆüËܸì', 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, '0', 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP') . "\n"; ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; // Note: Returned NULL string // echo gettype($r). ' val '. $r ."\n"; // Non-existent echo "== NON-EXISTENT ==\n"; $r = mb_strpos($euc_jp, '´Ú¹ñ¸ì', 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, "\n", 'EUC-JP'); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp,'ÆüËܸì', 0) . "\n"; print mb_strpos($euc_jp, '0', 0) . "\n"; print mb_strpos($euc_jp, 3, 0) . "\n"; print mb_strpos($euc_jp, 0, 0) . "\n"; $r = mb_strpos($euc_jp,'´Ú¹ñ¸ì', 0); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp,"\n", 0); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No offset and encoding parameter echo "== NO OFFSET AND ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp,'ÆüËܸì') . "\n"; print mb_strpos($euc_jp, '0') . "\n"; print mb_strpos($euc_jp, 3) . "\n"; print mb_strpos($euc_jp, 0) . "\n"; $r = mb_strpos($euc_jp,'´Ú¹ñ¸ì'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp,"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // Invalid Parameters echo "== INVALID PARAMETER TEST ==\n"; $r = mb_strpos($euc_jp,'','EUC-JP'); ($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n"); $r = mb_strpos($euc_jp, $t_ary, 'EUC-JP'); ($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n"); $r = mb_strpos($euc_jp, $t_obj, 'EUC-JP'); ($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); $r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING'); ($r === FALSE) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n"); ?> Index: php4/ext/mbstring/tests/010.phpt +++ php4/ext/mbstring/tests/010.phpt --TEST-- mb_strpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('010.inc'); ?> --EXPECT-- == POSITIVE OFFSET == 10 0 3 0 34 30 33 30 == NEGATIVE OFFSET == 34 30 33 30 10 0 3 0 == OUT OF RANGE == OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE == NON-EXISTENT == OK_STR OK_NEWLINE == NO ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == NO OFFSET AND ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == INVALID PARAMETER TEST == ERR: Warning OK_NULL ERR: Notice OK_ARRAY ERR: Notice OK_OBJECT ERR: Notice OK_BAD_ENCODING Index: php4/ext/mbstring/tests/011.inc +++ php4/ext/mbstring/tests/011.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== WITH ENCODING PARAMETER ==\n"; print mb_strrpos($euc_jp,'ÆüËܸì', 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, '0', 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, 3, 'EUC-JP') . "\n"; print mb_strrpos($euc_jp, 0, 'EUC-JP') . "\n"; $r = mb_strrpos($euc_jp, '´Ú¹ñ¸ì', 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strrpos($euc_jp, "\n", 'EUC-JP'); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strrpos($euc_jp,'ÆüËܸì') . "\n"; print mb_strrpos($euc_jp, '0') . "\n"; print mb_strrpos($euc_jp, 3) . "\n"; print mb_strrpos($euc_jp, 0) . "\n"; $r = mb_strrpos($euc_jp,'´Ú¹ñ¸ì'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strrpos($euc_jp,"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // Invalid Parameters echo "== INVALID PARAMETER TEST ==\n"; $r = mb_strrpos($euc_jp,'','EUC-JP'); ($r === FALSE) ? print("OK_NULL\n") : print("NG_NULL\n"); $r = mb_strrpos($euc_jp, $t_ary, 'EUC-JP'); ($r === FALSE) ? print("OK_ARRAY\n") : print("NG_ARRAY\n"); $r = mb_strrpos($euc_jp, $t_obj, 'EUC-JP'); ($r === FALSE) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); //Note: Notice msg for NULL string might be better. ?> Index: php4/ext/mbstring/tests/011.phpt +++ php4/ext/mbstring/tests/011.phpt --TEST-- mb_strrpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('011.inc'); ?> --EXPECT-- == WITH ENCODING PARAMETER == 34 30 33 30 OK_STR OK_NEWLINE == NO ENCODING PARAMETER == 34 30 33 30 OK_STR OK_NEWLINE == INVALID PARAMETER TEST == ERR: Warning OK_NULL ERR: Notice OK_ARRAY ERR: Notice OK_OBJECT Index: php4/ext/mbstring/tests/012.inc +++ php4/ext/mbstring/tests/012.inc <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_substr($euc_jp, 10, 10,'EUC-JP') . "\n"; print "2: ". mb_substr($euc_jp, 0, 100,'EUC-JP') . "\n"; $str = mb_substr($euc_jp, 100, 10,'EUC-JP'); // Note: returns last character ($str === "") ? print "3 OK\n" : print "NG: $str\n"; $str = mb_substr($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "4 OK: $str\n" : print "NG: $str\n"; ?> Index: php4/ext/mbstring/tests/012.phpt +++ php4/ext/mbstring/tests/012.phpt --TEST-- mb_substr() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('012.inc'); ?> --EXPECT-- 1: ÆüËܸì¤Ç¤¹¡£EUC- 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3 OK 4 OK: 0123¤³¤Îʸ»úÎó¤Ï Index: php4/ext/mbstring/tests/013.inc +++ php4/ext/mbstring/tests/013.inc <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print mb_strcut($euc_jp, 6, 5,'EUC-JP') . "\n"; print mb_strcut($euc_jp, 0, 100,'EUC-JP') . "\n"; $str = mb_strcut($euc_jp, 100, 10,'EUC-JP'); ($str === "") ? print "OK\n" : print "NG: $str\n"; $str = mb_strcut($euc_jp, -100, 10,'EUC-JP'); ($str !== "") ? print "OK: $str\n" : print "NG:\n"; ?> Index: php4/ext/mbstring/tests/013.phpt +++ php4/ext/mbstring/tests/013.phpt --TEST-- mb_strcut() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('013.inc'); ?> --EXPECT-- ¤Îʸ 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ OK OK: 0123¤³¤Îʸ Index: php4/ext/mbstring/tests/014.inc +++ php4/ext/mbstring/tests/014.inc <?php // TODO: Add more encoding //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_strimwidth($euc_jp, 0, 15,'...','EUC-JP') . "\n"; print "2: ". mb_strimwidth($euc_jp, 0, 100,'...','EUC-JP') . "\n"; print "3: ". mb_strimwidth($euc_jp, 15, 100,'...','EUC-JP') . "\n"; // Note: Did not start form -22 offset. Staring from 0. print "4: ". mb_strimwidth($euc_jp,-22, 100,'...','EUC-JP') . "\n"; $str = mb_strimwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === "") ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str !== "") ? print "6 OK: $str\n" : print "NG: $str\n"; ?> Index: php4/ext/mbstring/tests/014.phpt +++ php4/ext/mbstring/tests/014.phpt --TEST-- mb_strimwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('014.inc'); ?> --EXPECT-- 1: 0123¤³¤Îʸ»ú... 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3: ¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 4: EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 5 OK 6 OK: 0123¤³... Index: php4/ext/mbstring/tests/015.inc +++ php4/ext/mbstring/tests/015.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test for single scaler echo "== SCALER TEST ==\n"; $s = $sjis; $encoding = mb_convert_variables('EUC-JP', 'SJIS', $s); print("$encoding\n"); // SJIS print("$s\n"); // Converted to EUC-JP $s = $jis; $encoding = mb_convert_variables('EUC-JP', 'JIS', $s); print("$encoding\n"); // JIS print("$s\n"); // Converted to EUC-JP $s = $euc_jp; $encoding = mb_convert_variables('SJIS', 'EUC-JP', $s); print("$encoding\n"); // EUC-JP print(base64_encode($s)."\n"); // Converted to SJIS (base64 encoded) $s = $euc_jp; $encoding = mb_convert_variables('JIS', 'EUC-JP', $s); print("$encoding\n"); // EUC-JP print(base64_encode($s)."\n"); // Converted to JIS (base64 encoded) // Test for multiple slcaler $s1 = $euc_jp; $s2 = $euc_jp; $s3 = $euc_jp; $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3); print("$encoding\n"); // EUC-JP print("$s1$s2$s3\n"); // Converted to EUC-JP // Note: Mixing encoding in array/object is not supported? // Test for array echo "== ARRAY TEST ==\n"; $a = array($s3, $s2, $s1); $aa = $a; $encoding = mb_convert_variables('EUC-JP', 'auto', $aa); print("$encoding\n"); // EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP $a = array($s1, $s2, $s3); $aa = $a; $encoding = mb_convert_variables('EUC-JP', 'auto', $aa); print("$encoding\n"); // EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP // Test for object echo "== OBJECT TEST ==\n"; class foo { var $s1; var $s2; var $s3; function foo() { global $sjis, $jis, $euc_jp; $this->s1 = $euc_jp; $this->s2 = $euc_jp; $this->s3 = $euc_jp; } } class bar { var $s1; var $s2; var $s3; function bar() { global $sjis, $jis, $euc_jp; $this->s1 = $euc_jp; $this->s2 = $euc_jp; $this->s3 = $euc_jp; } } $o = new foo; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $oo); print("$encoding\n"); // EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP $o = new bar; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $oo); print("$encoding\n"); // EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP // Test for scaler, array and object echo "== SCALER, ARRAY AND OBJECT TEST ==\n"; $s1 = $euc_jp; $s2 = $euc_jp; $s3 = $euc_jp; $aa = $a; $oo = $o; $encoding = mb_convert_variables('EUC-JP', 'auto', $s1, $s2, $s3, $aa, $oo); print("$encoding\n"); // EUC-JP print("$s1$s2$s3\n"); // Converted to EUC-JP print("{$aa[0]}{$aa[1]}{$aa[2]}\n"); // Converted to EUC-JP print("{$oo->s1}{$oo->s2}{$oo->s3}\n"); // Converted to EUC-JP ?> Index: php4/ext/mbstring/tests/015.phpt +++ php4/ext/mbstring/tests/015.phpt --TEST-- mb_convert_variables() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('015.inc'); ?> --EXPECT-- == SCALER TEST == SJIS ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ JIS ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== EUC-JP GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == ARRAY TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == OBJECT TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ == SCALER, ARRAY AND OBJECT TEST == EUC-JP ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ Index: php4/ext/mbstring/tests/016.inc +++ php4/ext/mbstring/tests/016.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test with sigle "form encoding" // Note: For some reason it complains, results are differ. Not reserched. echo "== BASIC TEST ==\n"; $s = $sjis; $s = mb_convert_encoding($s, 'EUC-JP', 'SJIS'); print("EUC-JP: $s\n"); // EUC-JP $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', 'JIS'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', 'EUC-JP'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', 'EUC-JP'); print("JIS: ".base64_encode($s)."\n"); // JIS // Using Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'UTF-8',1=>'EUC-JP', 2=>'SJIS', 3=>'JIS'); $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', $a); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', $a); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', $a); print("JIS: ".base64_encode($s)."\n"); // JIS // Using Detect Order echo "== DETECT ORDER ==\n"; mb_detect_order('auto'); $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS'); print("JIS: ".base64_encode($s)."\n"); // JIS // Invalid(?) Parameters echo "== INVALID PARAMETER ==\n"; $s = mb_convert_encoding(1234, 'EUC-JP'); print("INT: $s\n"); // EUC-JP $s = mb_convert_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'BAD'); print("BAD: $s\n"); // BAD $s = $euc_jp; $s = mb_convert_encoding($s); print("MP: $s\n"); // Missing parameter ?> Index: php4/ext/mbstring/tests/016.phpt +++ php4/ext/mbstring/tests/016.phpt --TEST-- mb_convert_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('016.inc'); ?> --EXPECT-- == BASIC TEST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == ARRAY ENCODING LIST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == DETECT ORDER == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == INVALID PARAMETER == INT: 1234 EUC-JP: ERR: Warning BAD: ERR: Warning MP: Index: php4/ext/mbstring/tests/017.inc +++ php4/ext/mbstring/tests/017.inc <?php // TODO: Add more tests //$debug = true; // Uncomment this line to view error/warning/notice message in *.out file ini_set('include_path','.'); include_once('common.php'); // SJIS string (BASE64 encoded) $sjis = base64_decode('k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg=='); // JIS string (BASE64 encoded) $jis = base64_decode('GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg=='); // EUC-JP string $euc_jp = 'ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£'; // Test with sigle "form encoding" // Note: For some reason it complains, results are differ. Not reserched. echo "== BASIC TEST ==\n"; $s = $sjis; $s = mb_detect_encoding($s, 'SJIS'); print("SJIS: $s\n"); $s = $jis; $s = mb_detect_encoding($s, 'JIS'); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, 'UTF-8,EUC-JP,JIS'); print("EUC-JP: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, 'JIS,EUC-JP'); print("EUC-JP: $s\n"); // Using Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'UTF-8',1=>'EUC-JP', 2=>'SJIS', 3=>'JIS'); // Note: Due to detect order, detected as UTF-8 $s = $jis; $s = mb_detect_encoding($s, $a); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s, $a); print("EUC-JP: $s\n"); $s = $sjis; $s = mb_detect_encoding($s, $a); print("SJIS: $s\n"); // Using Detect Order echo "== DETECT ORDER ==\n"; mb_detect_order('auto'); $s = $jis; $s = mb_detect_encoding($s); print("JIS: $s\n"); $s = $euc_jp; $s = mb_detect_encoding($s); print("EUC-JP: $s\n"); $s = $sjis; $s = mb_detect_encoding($s); print("SJIS: $s\n"); // Invalid(?) Parameters echo "== INVALID PARAMETER ==\n"; $s = mb_detect_encoding(1234, 'EUC-JP'); print("INT: $s\n"); // EUC-JP $s = mb_detect_encoding('', 'EUC-JP'); print("EUC-JP: $s\n"); // SJIS $s = $euc_jp; $s = mb_detect_encoding($s, 'BAD'); print("BAD: $s\n"); // BAD $s = $euc_jp; $s = mb_detect_encoding(); print("MP: $s\n"); // Missing parameter ?> Index: php4/ext/mbstring/tests/017.phpt +++ php4/ext/mbstring/tests/017.phpt --TEST-- mb_detect_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('017.inc'); ?> --EXPECT-- == BASIC TEST == SJIS: SJIS JIS: JIS EUC-JP: EUC-JP EUC-JP: EUC-JP == ARRAY ENCODING LIST == JIS: UTF-8 EUC-JP: EUC-JP SJIS: SJIS == DETECT ORDER == JIS: JIS EUC-JP: EUC-JP SJIS: SJIS == INVALID PARAMETER == INT: EUC-JP EUC-JP: EUC-JP ERR: Warning BAD: EUC-JP ERR: Warning MP: Index: php4/ext/mbstring/tests/018.inc +++ php4/ext/mbstring/tests/018.inc <?php // TODO: Add more encoding, strings..... //$debug = true; ini_set('include_path','.'); include_once('common.php'); // EUC-JP $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; print "1: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; /* print "2: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; print "3: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; // Note: Did not start form -22 offset. Staring from 0. print "4: ". mb_strwidth($euc_jp, 'EUC-JP') . "\n"; $str = mb_strwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === "") ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str !== "") ? print "6 OK: $str\n" : print "NG: $str\n"; */ ?> Index: php4/ext/mbstring/tests/018.phpt +++ php4/ext/mbstring/tests/018.phpt --TEST-- mb_strwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('018.inc'); ?> --EXPECT-- 1: 68 Index: php4/ext/mbstring/tests/019.inc +++ php4/ext/mbstring/tests/019.inc <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.php'); // restore detect_order to 'auto' mb_detect_order('auto'); // Test string $euc_jp = '0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£0123ÆüËܸì¤ÏÌÌÅݽ¤¤¡£'; $ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789'; // ASCII echo "== ASCII ==\n"; print strlen($ascii,'ASCII') . "\n"; print strlen($ascii) . "\n"; // EUC-JP echo "== EUC-JP ==\n"; print strlen($euc_jp,'EUC-JP') . "\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print strlen($euc_jp) . "\n"; // SJIS echo "== SJIS ==\n"; $sjis = mb_convert_encoding($euc_jp, 'SJIS'); print strlen($sjis,'SJIS') . "\n"; mb_internal_encoding('SJIS') or print("mb_internal_encoding() failed\n"); print strlen($sjis) . "\n"; // JIS // Note: either convert_encoding or strlen has problem echo "== JIS ==\n"; $jis = mb_convert_encoding($euc_jp, 'JIS'); print strlen($jis,'JIS') . "\n"; mb_internal_encoding('JIS') or print("mb_internal_encoding() failed\n"); print strlen($jis) . "\n"; // UTF-8 // Note: either convert_encoding or strlen has problem echo "== UTF-8 ==\n"; $utf8 = mb_convert_encoding($euc_jp, 'UTF-8'); print strlen($utf8,'UTF-8') . "\n"; mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); print strlen($utf8) . "\n"; // Wrong Parameters echo "== WRONG PARAMETERS ==\n"; // Array // Note: PHP Notice, but returns some value $r = strlen($t_ary); echo $r."\n"; // Object // Note: PHP Notice, but returns some value $r = strlen($t_obj); echo $r."\n"; // Wrong encoding mb_internal_encoding('EUC-JP'); $r = strlen($euc_jp, 'BAD_NAME'); echo $r."\n"; ?> Index: php4/ext/mbstring/tests/019.phpt +++ php4/ext/mbstring/tests/019.phpt --TEST-- strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php include('019.inc'); ?> --EXPECT-- == ASCII == ERR: Warning 40 == EUC-JP == ERR: Warning 72 == SJIS == ERR: Warning 72 == JIS == ERR: Warning 121 == UTF-8 == ERR: Warning 174 == WRONG PARAMETERS == ERR: Notice 5 ERR: Notice 6 ERR: Warning Index: php4/ext/mbstring/tests/common.php +++ php4/ext/mbstring/tests/common.php <?php /* * Common definition and Settings */ // Custom Error Hanlder for testing function test_error_handler($err_no, $err_msg, $filename, $linenum, $vars) { global $debug; $err_type = array ( 1 => "Error", // E_ERROR 2 => "Warning", // E_WARINING 4 => "Parsing Error", // E_PARSE 8 => "Notice", // E_NOTICE 16 => "Core Error", // E_CORE_ERROR 32 => "Core Warning", // E_CORE_WARNING 64 => "Compile Error", // E_COMPILE_ERROR 128 => "Compile Warning", // E_COMPILE_WARNING 256 => "User Error", // E_USER_ERROR 512 => "User Warning", // E_USER_WARMING 1024=> "User Notice" // E_USER_NOTICE ); if (!empty($debug)) { printf("%s: %s (%d)\n", $err_type[$err_no], $err_msg, $linenum); } else { printf("ERR: %s\n",$err_type[$err_no]); } } set_error_handler('test_error_handler'); // Var def for testing $t_ary = array( 's1' => 'ÆüËܸìEUC-JP¤Îʸ»úÎó', 's2' => 'English Text' ); class tc { var $s1 = 'ÆüËܸìEUC-JP¤Îʸ»úÎó'; var $s2 = 'English Text'; function tc() { } } $t_obj = new tc; ?> Index: php4/ext/mbstring/tests/skipif.inc +++ php4/ext/mbstring/tests/skipif.inc <?php // This script prints "skip" if condition does not meet. if (!extension_loaded("mbstring") && ini_get("enable_dl")) { $dlext = (substr(PHP_OS, 0, 3) == "WIN") ? ".dll" : ".so"; @dl("iconv$dlext"); } if (!extension_loaded("mbstring")) { die("skip\n"); } ?>