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 020.phpt 021.inc 021.phpt 022.inc 022.phpt 023.inc 023.phpt 024.inc 024.phpt 025.inc 025.phpt
026.inc 026.phpt 027.inc 027.phpt casefold.phpt htmlent.phpt mb_convert_encoding.phpt mb_convert_variables.phpt mb_detect_encoding.phpt
mb_detect_order.phpt mb_ereg.phpt mb_ereg_replace.phpt mb_ereg_search_xxx.phpt mb_http_input.phpt mb_http_output.phpt mb_internal_encoding.phpt
mb_output_handler_euc_jp.phpt mb_preferred_mime_name.phpt mb_regex_set_options.phpt mb_split.phpt mb_strcut.phpt mb_strimwidth.phpt mb_strlen.phpt
mb_strpos.phpt mb_strwidth.phpt mb_substitute_character.phpt mb_substr.phpt php_gr_jp_10830.phpt simpletest.phpt
| From: | Moriyoshi Koizumi | Date: | Mon, 21 Oct 2002 19:19:06 +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 020.phpt 021.inc 021.phpt 022.inc 022.phpt 023.inc 023.phpt 024.inc 024.phpt 025.inc 025.phpt 026.inc 026.phpt 027.inc 027.phpt casefold.phpt htmlent.phpt mb_convert_encoding.phpt mb_convert_variables.phpt mb_detect_encoding.phpt mb_detect_order.phpt mb_ereg.phpt mb_ereg_replace.phpt mb_ereg_search_xxx.phpt mb_http_input.phpt mb_http_output.phpt mb_internal_encoding.phpt mb_output_handler_euc_jp.phpt mb_preferred_mime_name.phpt mb_regex_set_options.phpt mb_split.phpt mb_strcut.phpt mb_strimwidth.phpt mb_strlen.phpt mb_strpos.phpt mb_strwidth.phpt mb_substitute_character.phpt mb_substr.phpt php_gr_jp_10830.phpt simpletest.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-15118@lists.php.net to get a copy of this message | ||
moriyoshi Mon Oct 21 15:19:06 2002 EDT
Added files:
/php4/ext/mbstring/tests casefold.phpt htmlent.phpt
mb_convert_encoding.phpt
mb_convert_variables.phpt
mb_detect_encoding.phpt
mb_detect_order.phpt mb_ereg.phpt
mb_ereg_replace.phpt
mb_ereg_search_xxx.phpt mb_http_input.phpt
mb_http_output.phpt
mb_internal_encoding.phpt
mb_output_handler_euc_jp.phpt
mb_preferred_mime_name.phpt
mb_regex_set_options.phpt mb_split.phpt
mb_strcut.phpt mb_strimwidth.phpt
mb_strlen.phpt mb_strpos.phpt
mb_strwidth.phpt
mb_substitute_character.phpt
mb_substr.phpt php_gr_jp_10830.phpt
simpletest.phpt
Removed 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 020.phpt 021.inc 021.phpt
022.inc 022.phpt 023.inc 023.phpt 024.inc
024.phpt 025.inc 025.phpt 026.inc 026.phpt
027.inc 027.phpt
Log:
Renamed the test cases.
Index: php4/ext/mbstring/tests/casefold.phpt +++ php4/ext/mbstring/tests/casefold.phpt --TEST-- mb_strtoupper() / mb_strtolower() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_strtolower') or die("SKIP"); --POST-- --GET-- --FILE-- <?php print mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ); print mb_strtoupper( mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ) ); ?> --EXPECT-- abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Index: php4/ext/mbstring/tests/htmlent.phpt +++ php4/ext/mbstring/tests/htmlent.phpt --TEST-- HTML input/output --SKIPIF-- <?php ini_set('include_path','.'); include('skipif.inc'); ?> --INI-- output_handler = mb_output_handler zlib.output_compression = Off arg_separator.input="x" error_reporting=0 mbstring.http_input=HTML-ENTITIES mbstring.internal_encoding=UTF8 mbstring.http_output=HTML-ENTITIES mbstring.encoding_translation=On --FILE-- <?php // enable output encoding through output handler ob_start("mb_output_handler"); // @... are must be decoded on input these are not reencoded on output. // If you see @AB on output this means input encoding fails. // If you do not see ä... on output this means output encoding fails. // Using UTF-8 internally allows to encode/decode ALL characters. // &128... will stay as they are since their character codes are above 127 // and they do not have a named entity representaion. ?> <?php echo mb_http_input('l').'>'.mb_internal_encoding().'>'.mb_http_output();?> <?php mb_parse_str("test=&&;&@AB€‚äöü€⟨⟩"); echo "test='$test'"; ?> --EXPECT-- HTML-ENTITIES>UTF-8>HTML-ENTITIES test='&&;&@AB€‚äöü€⟨⟩' Index: php4/ext/mbstring/tests/mb_convert_encoding.phpt +++ php4/ext/mbstring/tests/mb_convert_encoding.phpt --TEST-- mb_convert_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 "== STRING ENCODING LIST ==\n"; $a = 'JIS,UTF-8,EUC-JP,SJIS'; $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 Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'JIS', 1=>'UTF-8', 2=>'EUC-JP', 3=>'SJIS'); $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"; $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', 'auto'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', 'auto'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', 'auto'); 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 ?> --EXPECT-- == BASIC TEST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == STRING ENCODING LIST == 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/mb_convert_variables.phpt +++ php4/ext/mbstring/tests/mb_convert_variables.phpt --TEST-- mb_convert_variables() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 ?> --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/mb_detect_encoding.phpt +++ php4/ext/mbstring/tests/mb_detect_encoding.phpt --TEST-- mb_detect_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 ?> --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/mb_detect_order.phpt +++ php4/ext/mbstring/tests/mb_detect_order.phpt --TEST-- mb_detect_order() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_ereg.phpt +++ php4/ext/mbstring/tests/mb_ereg.phpt --TEST-- mb_ereg() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); $encs = array( 'EUC-JP', 'Shift_JIS', 'SJIS', 'UTF-8' ); function test_ereg( $test_enc, $pat, $str, $in_enc = 'EUC-JP' ) { mb_regex_encoding( $test_enc ); $pat = mb_convert_encoding( $pat, $test_enc, $in_enc ); $str = mb_convert_encoding( $str, $test_enc, $in_enc ); printf( "(%d)%s\n", mb_ereg( $pat, $str, $reg ), ( is_array( $reg )? mb_convert_encoding( implode( ' ', $reg ), $in_enc, $test_enc ) : '' ) ); } function do_tests( $enc ) { test_ereg( $enc, 'abc ([a-z]+) ([a-z]+) ([a-z]+)$', "abc def ghi jkl" ); $pat = '([£á-£ú]+) ([ ¤¢-¤«]+)([¤«-¤Ê]+) ([¤ï-¤ó]+)$'; test_ereg( $enc, $pat, '£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó' ); test_ereg( $enc, $pat, '£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð' ); } foreach( $encs as $enc ) { do_tests( $enc ); } ?> --EXPECT-- (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (39)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (39)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð Index: php4/ext/mbstring/tests/mb_ereg_replace.phpt +++ php4/ext/mbstring/tests/mb_ereg_replace.phpt --TEST-- mb_ereg_replace() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg_replace') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); print mb_ereg_replace( ' ', '-', 'a b c d e' )."\n"; print mb_ereg_replace( '([a-z]+)','[\\1]', 'abc def ghi' ); ?> --EXPECT-- a-b-c-d-e [abc] [def] [ghi] Index: php4/ext/mbstring/tests/mb_ereg_search_xxx.phpt +++ php4/ext/mbstring/tests/mb_ereg_search_xxx.phpt --TEST-- mb_ereg_search() stuff --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg_search') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); $encs = array( 'EUC-JP', 'Shift_JIS', 'SJIS', 'UTF-8' ); function test_search( $test_enc, $str, $look_for, $opt, $in_enc = 'EUC-JP' ) { mb_regex_encoding( $test_enc ); $str = mb_convert_encoding( $str, $test_enc, $in_enc ); $look_for = mb_convert_encoding( $look_for, $test_enc, $in_enc ); mb_ereg_search_init( $str, $look_for, $opt ); while ( mb_ereg_search_pos() ) { $regs = mb_ereg_search_getregs(); array_shift( $regs ); printf( "(%s) (%d) %s\n", $test_enc, mb_ereg_search_getpos(), mb_convert_encoding( ( is_array( $regs ) ? implode( '-', $regs ): '' ), $in_enc, $test_enc ) ); } } function do_tests( $enc, $opt ) { test_search( $enc, "¢Ï¡¦ ¡¦¢Ï\n", ' (¡¦?¢Ï¡¦?)[[:space:]]', $opt ); test_search( $enc, 'abcde abdeabcf anvfabc odu abcd ', '(ab[a-z]+)', $opt ); } foreach( $encs as $enc ) { do_tests( $enc, '' ); do_tests( $enc, 'x' ); } ?> --EXPECT-- (EUC-JP) (10) ¡¦¢Ï (EUC-JP) (5) abcde (EUC-JP) (14) abdeabcf (EUC-JP) (22) abc (EUC-JP) (31) abcd (EUC-JP) (5) ¢Ï¡¦ (EUC-JP) (10) ¡¦¢Ï (EUC-JP) (5) abcde (EUC-JP) (14) abdeabcf (EUC-JP) (22) abc (EUC-JP) (31) abcd (Shift_JIS) (10) ¡¦¢Ï (Shift_JIS) (5) abcde (Shift_JIS) (14) abdeabcf (Shift_JIS) (22) abc (Shift_JIS) (31) abcd (Shift_JIS) (5) ¢Ï¡¦ (Shift_JIS) (10) ¡¦¢Ï (Shift_JIS) (5) abcde (Shift_JIS) (14) abdeabcf (Shift_JIS) (22) abc (Shift_JIS) (31) abcd (SJIS) (10) ¡¦¢Ï (SJIS) (5) abcde (SJIS) (14) abdeabcf (SJIS) (22) abc (SJIS) (31) abcd (SJIS) (5) ¢Ï¡¦ (SJIS) (10) ¡¦¢Ï (SJIS) (5) abcde (SJIS) (14) abdeabcf (SJIS) (22) abc (SJIS) (31) abcd (UTF-8) (14) ¡¦¢Ï (UTF-8) (5) abcde (UTF-8) (14) abdeabcf (UTF-8) (22) abc (UTF-8) (31) abcd (UTF-8) (7) ¢Ï¡¦ (UTF-8) (14) ¡¦¢Ï (UTF-8) (5) abcde (UTF-8) (14) abdeabcf (UTF-8) (22) abc (UTF-8) (31) abcd Index: php4/ext/mbstring/tests/mb_http_input.phpt +++ php4/ext/mbstring/tests/mb_http_input.phpt --TEST-- mb_http_input() --SKIPIF-- <?php include('skipif.inc'); (php_sapi_name()=='cgi') or die("skip sapi is not a cgi version"); ?> --POST-- a=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --GET-- b=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --FILE-- <?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.inc'); $ini = ini_get('mbstring.http_input'); // It must be url encoded.... // echo vars echo $_POST['a']."\n"; echo $_GET['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"; } ?> --EXPECT-- ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê OK Index: php4/ext/mbstring/tests/mb_http_output.phpt +++ php4/ext/mbstring/tests/mb_http_output.phpt --TEST-- mb_http_output() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //TODO: Add more encoding. Wrong paramter type test. //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_internal_encoding.phpt +++ php4/ext/mbstring/tests/mb_internal_encoding.phpt --TEST-- mb_internal_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_output_handler_euc_jp.phpt +++ php4/ext/mbstring/tests/mb_output_handler_euc_jp.phpt --TEST-- mb_output_handler() (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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; $output = ob_get_clean(); var_dump( $output ); ?> --EXPECT-- string(73) "¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£" Index: php4/ext/mbstring/tests/mb_preferred_mime_name.phpt +++ php4/ext/mbstring/tests/mb_preferred_mime_name.phpt --TEST-- mb_preferred_mime_name() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding names //$debug=true; ini_set('include_path','.'); include_once('common.inc'); $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"); ?> --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/mb_regex_set_options.phpt +++ php4/ext/mbstring/tests/mb_regex_set_options.phpt --TEST-- mb_regex_set_options() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_regex_set_options') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( 'x' ); print mb_ereg_replace(' -', '+', '- - - - -' ); mb_regex_set_options( '' ); print mb_ereg_replace(' -', '+', '- - - - -' ); ?> --EXPECT-- + + + + +-++++ Index: php4/ext/mbstring/tests/mb_split.phpt +++ php4/ext/mbstring/tests/mb_split.phpt --TEST-- mb_split() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_split') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); mb_regex_encoding( 'EUC-JP' ); function verify_split( $spliton, $str, $count = 0 ) { $result1 = mb_split( $spliton, $str, $count ); $result2 = split( $spliton, $str, $count ); if ( $result1 == $result2 ) { print "ok\n"; } else { print count($result1).'-'.count($result2)."\n"; } } var_dump( mb_split( " ", "a b c d e f g" ) == mb_split( "[[:space:]]", "a\nb\tc\nd e f g" ) ); for ( $i = 0; $i < 5; ++$i ) { verify_split( " ", "a\tb\tc\td e\tf g", $i ); } for ( $i = 1; $i < 5; ++$i ) { verify_split( "\xa1\xa1+", "\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1", $i ); } ?> --EXPECT-- bool(true) ok ok ok ok ok ok 2-2 3-3 4-4 Index: php4/ext/mbstring/tests/mb_strcut.phpt +++ php4/ext/mbstring/tests/mb_strcut.phpt --TEST-- mb_strcut() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --EXPECT-- ¤Îʸ 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ OK OK: 0123¤³¤Îʸ Index: php4/ext/mbstring/tests/mb_strimwidth.phpt +++ php4/ext/mbstring/tests/mb_strimwidth.phpt --TEST-- mb_strimwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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. $str = mb_strimwidth($euc_jp,-22, 100,'...','EUC-JP'); ($str === FALSE) ? print "4 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === FALSE) ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str === FALSE) ? print "6 OK\n" : print "NG: $str\n"; ?> --EXPECT-- 1: 0123¤³¤Îʸ»ú... 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3: ¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ ERR: Warning 4 OK ERR: Warning 5 OK ERR: Warning 6 OK Index: php4/ext/mbstring/tests/mb_strlen.phpt +++ php4/ext/mbstring/tests/mb_strlen.phpt --TEST-- mb_strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_strpos.phpt +++ php4/ext/mbstring/tests/mb_strpos.phpt --TEST-- mb_strpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.inc'); // 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"; $r = mb_strpos($euc_jp,'ÆüËܸì', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, '0', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp,'ÆüËܸì', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, '0', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); $r = mb_strpos($euc_jp,'ÆüËܸì', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, '0', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP'); ($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"); ?> --EXPECT-- == POSITIVE OFFSET == 10 0 3 0 34 30 33 30 == NEGATIVE OFFSET == ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET == 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/mb_strwidth.phpt +++ php4/ext/mbstring/tests/mb_strwidth.phpt --TEST-- mb_strwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding, strings..... //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; */ ?> --EXPECT-- 1: 68 Index: php4/ext/mbstring/tests/mb_substitute_character.phpt +++ php4/ext/mbstring/tests/mb_substitute_character.phpt --TEST-- mb_substitute_character() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"); ?> --EXPECT-- OK_UTF 12307 OK_LONG long OK_NONE none == INVALID PARAMETER == ERR: Warning OK_BAD_NAME Index: php4/ext/mbstring/tests/mb_substr.phpt +++ php4/ext/mbstring/tests/mb_substr.phpt --TEST-- mb_substr() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --EXPECT-- 1: ÆüËܸì¤Ç¤¹¡£EUC- 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3 OK 4 OK: 0123¤³¤Îʸ»úÎó¤Ï Index: php4/ext/mbstring/tests/php_gr_jp_10830.phpt +++ php4/ext/mbstring/tests/php_gr_jp_10830.phpt --TEST-- php-users@php.gr.jp #10830 --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg') or die("SKIP"); --POST-- --GET-- --FILE-- <?php $a="aaa\n<>"; var_dump( mb_ereg("^[^><]+$",$a) ); var_dump( ereg("^[^><]+$",$a) ); ?> --EXPECT-- bool(false) bool(false) Index: php4/ext/mbstring/tests/simpletest.phpt +++ php4/ext/mbstring/tests/simpletest.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/casefold.phpt +++ php4/ext/mbstring/tests/casefold.phpt --TEST-- mb_strtoupper() / mb_strtolower() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_strtolower') or die("SKIP"); --POST-- --GET-- --FILE-- <?php print mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ); print mb_strtoupper( mb_strtolower( "ABCDEFGHIJKLMNOPQRSTUVWXYZ\n" ) ); ?> --EXPECT-- abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ Index: php4/ext/mbstring/tests/htmlent.phpt +++ php4/ext/mbstring/tests/htmlent.phpt --TEST-- HTML input/output --SKIPIF-- <?php ini_set('include_path','.'); include('skipif.inc'); ?> --INI-- output_handler = mb_output_handler zlib.output_compression = Off arg_separator.input="x" error_reporting=0 mbstring.http_input=HTML-ENTITIES mbstring.internal_encoding=UTF8 mbstring.http_output=HTML-ENTITIES mbstring.encoding_translation=On --FILE-- <?php // enable output encoding through output handler ob_start("mb_output_handler"); // @... are must be decoded on input these are not reencoded on output. // If you see @AB on output this means input encoding fails. // If you do not see ä... on output this means output encoding fails. // Using UTF-8 internally allows to encode/decode ALL characters. // &128... will stay as they are since their character codes are above 127 // and they do not have a named entity representaion. ?> <?php echo mb_http_input('l').'>'.mb_internal_encoding().'>'.mb_http_output();?> <?php mb_parse_str("test=&&;&@AB€‚äöü€⟨⟩"); echo "test='$test'"; ?> --EXPECT-- HTML-ENTITIES>UTF-8>HTML-ENTITIES test='&&;&@AB€‚äöü€⟨⟩' Index: php4/ext/mbstring/tests/mb_convert_encoding.phpt +++ php4/ext/mbstring/tests/mb_convert_encoding.phpt --TEST-- mb_convert_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 "== STRING ENCODING LIST ==\n"; $a = 'JIS,UTF-8,EUC-JP,SJIS'; $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 Encoding List Array echo "== ARRAY ENCODING LIST ==\n"; $a = array(0=>'JIS', 1=>'UTF-8', 2=>'EUC-JP', 3=>'SJIS'); $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"; $s = $jis; $s = mb_convert_encoding($s, 'EUC-JP', 'auto'); print("EUC-JP: $s\n"); // EUC-JP $s = $euc_jp; $s = mb_convert_encoding($s, 'SJIS', 'auto'); print("SJIS: ".base64_encode($s)."\n"); // SJIS $s = $euc_jp; $s = mb_convert_encoding($s, 'JIS', 'auto'); 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 ?> --EXPECT-- == BASIC TEST == EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ EUC-JP: ÆüËÜ¸ì¥Æ¥¥¹¥È¤Ç¤¹¡£01234£µ£¶£·£¸£¹¡£ SJIS: k/qWe4zqg2WDTINYg2eCxYK3gUIwMTIzNIJUglWCVoJXgliBQg== JIS: GyRCRnxLXDhsJUYlLSU5JUgkRyQ5ISMbKEIwMTIzNBskQiM1IzYjNyM4IzkhIxsoQg== == STRING ENCODING LIST == 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/mb_convert_variables.phpt +++ php4/ext/mbstring/tests/mb_convert_variables.phpt --TEST-- mb_convert_variables() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 ?> --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/mb_detect_encoding.phpt +++ php4/ext/mbstring/tests/mb_detect_encoding.phpt --TEST-- mb_detect_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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.inc'); // 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 ?> --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/mb_detect_order.phpt +++ php4/ext/mbstring/tests/mb_detect_order.phpt --TEST-- mb_detect_order() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_ereg.phpt +++ php4/ext/mbstring/tests/mb_ereg.phpt --TEST-- mb_ereg() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); $encs = array( 'EUC-JP', 'Shift_JIS', 'SJIS', 'UTF-8' ); function test_ereg( $test_enc, $pat, $str, $in_enc = 'EUC-JP' ) { mb_regex_encoding( $test_enc ); $pat = mb_convert_encoding( $pat, $test_enc, $in_enc ); $str = mb_convert_encoding( $str, $test_enc, $in_enc ); printf( "(%d)%s\n", mb_ereg( $pat, $str, $reg ), ( is_array( $reg )? mb_convert_encoding( implode( ' ', $reg ), $in_enc, $test_enc ) : '' ) ); } function do_tests( $enc ) { test_ereg( $enc, 'abc ([a-z]+) ([a-z]+) ([a-z]+)$', "abc def ghi jkl" ); $pat = '([£á-£ú]+) ([ ¤¢-¤«]+)([¤«-¤Ê]+) ([¤ï-¤ó]+)$'; test_ereg( $enc, $pat, '£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó' ); test_ereg( $enc, $pat, '£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð' ); } foreach( $encs as $enc ) { do_tests( $enc ); } ?> --EXPECT-- (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (27)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (27)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð (15)abc def ghi jkl def ghi jkl (39)£á£â£ã ¤¢¤ª¤¤ ¤«¤³¤Ê ¤ï¤ñ¤ó £á£â£ã ¤¢¤ª¤¤ ¤« ¤³¤Ê ¤ï¤ñ¤ó (39)£í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð £í£ú£ø£æ£ð ¤¦¤ª¤« ¤¤« ¤ò¤ð Index: php4/ext/mbstring/tests/mb_ereg_replace.phpt +++ php4/ext/mbstring/tests/mb_ereg_replace.phpt --TEST-- mb_ereg_replace() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg_replace') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); print mb_ereg_replace( ' ', '-', 'a b c d e' )."\n"; print mb_ereg_replace( '([a-z]+)','[\\1]', 'abc def ghi' ); ?> --EXPECT-- a-b-c-d-e [abc] [def] [ghi] Index: php4/ext/mbstring/tests/mb_ereg_search_xxx.phpt +++ php4/ext/mbstring/tests/mb_ereg_search_xxx.phpt --TEST-- mb_ereg_search() stuff --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg_search') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); $encs = array( 'EUC-JP', 'Shift_JIS', 'SJIS', 'UTF-8' ); function test_search( $test_enc, $str, $look_for, $opt, $in_enc = 'EUC-JP' ) { mb_regex_encoding( $test_enc ); $str = mb_convert_encoding( $str, $test_enc, $in_enc ); $look_for = mb_convert_encoding( $look_for, $test_enc, $in_enc ); mb_ereg_search_init( $str, $look_for, $opt ); while ( mb_ereg_search_pos() ) { $regs = mb_ereg_search_getregs(); array_shift( $regs ); printf( "(%s) (%d) %s\n", $test_enc, mb_ereg_search_getpos(), mb_convert_encoding( ( is_array( $regs ) ? implode( '-', $regs ): '' ), $in_enc, $test_enc ) ); } } function do_tests( $enc, $opt ) { test_search( $enc, "¢Ï¡¦ ¡¦¢Ï\n", ' (¡¦?¢Ï¡¦?)[[:space:]]', $opt ); test_search( $enc, 'abcde abdeabcf anvfabc odu abcd ', '(ab[a-z]+)', $opt ); } foreach( $encs as $enc ) { do_tests( $enc, '' ); do_tests( $enc, 'x' ); } ?> --EXPECT-- (EUC-JP) (10) ¡¦¢Ï (EUC-JP) (5) abcde (EUC-JP) (14) abdeabcf (EUC-JP) (22) abc (EUC-JP) (31) abcd (EUC-JP) (5) ¢Ï¡¦ (EUC-JP) (10) ¡¦¢Ï (EUC-JP) (5) abcde (EUC-JP) (14) abdeabcf (EUC-JP) (22) abc (EUC-JP) (31) abcd (Shift_JIS) (10) ¡¦¢Ï (Shift_JIS) (5) abcde (Shift_JIS) (14) abdeabcf (Shift_JIS) (22) abc (Shift_JIS) (31) abcd (Shift_JIS) (5) ¢Ï¡¦ (Shift_JIS) (10) ¡¦¢Ï (Shift_JIS) (5) abcde (Shift_JIS) (14) abdeabcf (Shift_JIS) (22) abc (Shift_JIS) (31) abcd (SJIS) (10) ¡¦¢Ï (SJIS) (5) abcde (SJIS) (14) abdeabcf (SJIS) (22) abc (SJIS) (31) abcd (SJIS) (5) ¢Ï¡¦ (SJIS) (10) ¡¦¢Ï (SJIS) (5) abcde (SJIS) (14) abdeabcf (SJIS) (22) abc (SJIS) (31) abcd (UTF-8) (14) ¡¦¢Ï (UTF-8) (5) abcde (UTF-8) (14) abdeabcf (UTF-8) (22) abc (UTF-8) (31) abcd (UTF-8) (7) ¢Ï¡¦ (UTF-8) (14) ¡¦¢Ï (UTF-8) (5) abcde (UTF-8) (14) abdeabcf (UTF-8) (22) abc (UTF-8) (31) abcd Index: php4/ext/mbstring/tests/mb_http_input.phpt +++ php4/ext/mbstring/tests/mb_http_input.phpt --TEST-- mb_http_input() --SKIPIF-- <?php include('skipif.inc'); (php_sapi_name()=='cgi') or die("skip sapi is not a cgi version"); ?> --POST-- a=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --GET-- b=ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê --FILE-- <?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.inc'); $ini = ini_get('mbstring.http_input'); // It must be url encoded.... // echo vars echo $_POST['a']."\n"; echo $_GET['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"; } ?> --EXPECT-- ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê ÆüËܸì0123456789ÆüËܸ쥫¥¿¥«¥Ê¤Ò¤é¤¬¤Ê OK Index: php4/ext/mbstring/tests/mb_http_output.phpt +++ php4/ext/mbstring/tests/mb_http_output.phpt --TEST-- mb_http_output() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //TODO: Add more encoding. Wrong paramter type test. //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_internal_encoding.phpt +++ php4/ext/mbstring/tests/mb_internal_encoding.phpt --TEST-- mb_internal_encoding() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_output_handler_euc_jp.phpt +++ php4/ext/mbstring/tests/mb_output_handler_euc_jp.phpt --TEST-- mb_output_handler() (EUC-JP) --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?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; $output = ob_get_clean(); var_dump( $output ); ?> --EXPECT-- string(73) "¥Æ¥¹¥ÈÍÑÆüËܸìʸ»úÎ󡣤³¤Î¥â¥¸¥å¡¼¥ë¤ÏPHP¤Ë¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤òÄ󶡤·¤Þ¤¹¡£" Index: php4/ext/mbstring/tests/mb_preferred_mime_name.phpt +++ php4/ext/mbstring/tests/mb_preferred_mime_name.phpt --TEST-- mb_preferred_mime_name() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding names //$debug=true; ini_set('include_path','.'); include_once('common.inc'); $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"); ?> --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/mb_regex_set_options.phpt +++ php4/ext/mbstring/tests/mb_regex_set_options.phpt --TEST-- mb_regex_set_options() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_regex_set_options') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( 'x' ); print mb_ereg_replace(' -', '+', '- - - - -' ); mb_regex_set_options( '' ); print mb_ereg_replace(' -', '+', '- - - - -' ); ?> --EXPECT-- + + + + +-++++ Index: php4/ext/mbstring/tests/mb_split.phpt +++ php4/ext/mbstring/tests/mb_split.phpt --TEST-- mb_split() --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_split') or die("SKIP"); --POST-- --GET-- --FILE-- <?php mb_regex_set_options( '' ); mb_regex_encoding( 'EUC-JP' ); function verify_split( $spliton, $str, $count = 0 ) { $result1 = mb_split( $spliton, $str, $count ); $result2 = split( $spliton, $str, $count ); if ( $result1 == $result2 ) { print "ok\n"; } else { print count($result1).'-'.count($result2)."\n"; } } var_dump( mb_split( " ", "a b c d e f g" ) == mb_split( "[[:space:]]", "a\nb\tc\nd e f g" ) ); for ( $i = 0; $i < 5; ++$i ) { verify_split( " ", "a\tb\tc\td e\tf g", $i ); } for ( $i = 1; $i < 5; ++$i ) { verify_split( "\xa1\xa1+", "\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1", $i ); } ?> --EXPECT-- bool(true) ok ok ok ok ok ok 2-2 3-3 4-4 Index: php4/ext/mbstring/tests/mb_strcut.phpt +++ php4/ext/mbstring/tests/mb_strcut.phpt --TEST-- mb_strcut() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --EXPECT-- ¤Îʸ 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ OK OK: 0123¤³¤Îʸ Index: php4/ext/mbstring/tests/mb_strimwidth.phpt +++ php4/ext/mbstring/tests/mb_strimwidth.phpt --TEST-- mb_strimwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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. $str = mb_strimwidth($euc_jp,-22, 100,'...','EUC-JP'); ($str === FALSE) ? print "4 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, 100, -10,'...','EUC-JP'); ($str === FALSE) ? print "5 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); ($str === FALSE) ? print "6 OK\n" : print "NG: $str\n"; ?> --EXPECT-- 1: 0123¤³¤Îʸ»ú... 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3: ¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ ERR: Warning 4 OK ERR: Warning 5 OK ERR: Warning 6 OK Index: php4/ext/mbstring/tests/mb_strlen.phpt +++ php4/ext/mbstring/tests/mb_strlen.phpt --TEST-- mb_strlen() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --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/mb_strpos.phpt +++ php4/ext/mbstring/tests/mb_strpos.phpt --TEST-- mb_strpos() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.inc'); // 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"; $r = mb_strpos($euc_jp,'ÆüËܸì', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, '0', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp,'ÆüËܸì', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, '0', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); $r = mb_strpos($euc_jp,'ÆüËܸì', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, '0', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP'); ($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"); ?> --EXPECT-- == POSITIVE OFFSET == 10 0 3 0 34 30 33 30 == NEGATIVE OFFSET == ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET == 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/mb_strwidth.phpt +++ php4/ext/mbstring/tests/mb_strwidth.phpt --TEST-- mb_strwidth() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encoding, strings..... //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"; */ ?> --EXPECT-- 1: 68 Index: php4/ext/mbstring/tests/mb_substitute_character.phpt +++ php4/ext/mbstring/tests/mb_substitute_character.phpt --TEST-- mb_substitute_character() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php //$debug = true; ini_set('include_path','.'); include_once('common.inc'); // 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"); ?> --EXPECT-- OK_UTF 12307 OK_LONG long OK_NONE none == INVALID PARAMETER == ERR: Warning OK_BAD_NAME Index: php4/ext/mbstring/tests/mb_substr.phpt +++ php4/ext/mbstring/tests/mb_substr.phpt --TEST-- mb_substr() --SKIPIF-- <?php include('skipif.inc'); ?> --POST-- --GET-- --FILE-- <?php // TODO: Add more encodings ini_set('include_path','.'); include_once('common.inc'); // 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"; ?> --EXPECT-- 1: ÆüËܸì¤Ç¤¹¡£EUC- 2: 0123¤³¤Îʸ»úÎó¤ÏÆüËܸì¤Ç¤¹¡£EUC-JP¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£ÆüËܸì¤ÏÌÌÅݽ¤¤¡£ 3 OK 4 OK: 0123¤³¤Îʸ»úÎó¤Ï Index: php4/ext/mbstring/tests/php_gr_jp_10830.phpt +++ php4/ext/mbstring/tests/php_gr_jp_10830.phpt --TEST-- php-users@php.gr.jp #10830 --SKIPIF-- <?php include('skipif.inc'); ?> function_exists('mb_ereg') or die("SKIP"); --POST-- --GET-- --FILE-- <?php $a="aaa\n<>"; var_dump( mb_ereg("^[^><]+$",$a) ); var_dump( ereg("^[^><]+$",$a) ); ?> --EXPECT-- bool(false) bool(false) Index: php4/ext/mbstring/tests/simpletest.phpt +++ php4/ext/mbstring/tests/simpletest.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: ¥Þ¥ë¥Á¥Ð¥¤¥È´Ø¿ô¤¬»È¤¨¤Þ¤¹¡£¤³¤Îʸ»ú¤¬Ï¢·ë¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¡£