diff options
author | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2010-01-07 13:31:53 +0100 |
commit | 0fab6db7cac8d2be99579dd049f812a8ff98e74f (patch) | |
tree | 91f01b0d06916c78262404096bfd466b8e95e5b5 /ext/mbstring | |
parent | d3a8757891280dc6650ca7eead67830c794b0e7b (diff) | |
download | php-0fab6db7cac8d2be99579dd049f812a8ff98e74f.tar.gz |
Imported Upstream version 5.3.1upstream/5.3.1
Diffstat (limited to 'ext/mbstring')
26 files changed, 603 insertions, 19 deletions
diff --git a/ext/mbstring/config.m4 b/ext/mbstring/config.m4 index 49c65bec0..ad0c16c41 100644 --- a/ext/mbstring/config.m4 +++ b/ext/mbstring/config.m4 @@ -1,5 +1,5 @@ dnl -dnl $Id: config.m4,v 1.58.2.4.2.11.2.8 2009/04/20 15:39:48 jani Exp $ +dnl $Id: config.m4 279059 2009-04-20 15:39:48Z jani $ dnl AC_DEFUN([PHP_MBSTRING_ADD_SOURCES], [ diff --git a/ext/mbstring/config.w32 b/ext/mbstring/config.w32 index e208f4f62..ca1ef2315 100644 --- a/ext/mbstring/config.w32 +++ b/ext/mbstring/config.w32 @@ -1,4 +1,4 @@ -// $Id: config.w32,v 1.10.2.1.2.4.2.5 2009/06/12 16:15:51 kalle Exp $ +// $Id: config.w32 282040 2009-06-12 16:15:51Z kalle $ // vim:ft=javascript ARG_ENABLE("mbstring", "multibyte string functions", "no"); diff --git a/ext/mbstring/libmbfl/README b/ext/mbstring/libmbfl/README index 476a589aa..a4a2ef28b 100644 --- a/ext/mbstring/libmbfl/README +++ b/ext/mbstring/libmbfl/README @@ -5,4 +5,4 @@ See LICENSE and DISCLAIMER for licensing information. See the file INSTALL for building and installation instructions. -# $Id: README,v 1.4 2005/02/20 22:18:07 moriyoshi Exp $ +# $Id: README 180252 2005-02-20 22:18:09Z moriyoshi $ diff --git a/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c index 6c6654a1b..0163520f5 100644 --- a/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c +++ b/ext/mbstring/libmbfl/filters/mbfilter_htmlent.c @@ -186,18 +186,58 @@ int mbfl_filt_conv_html_dec(int c, mbfl_convert_filter *filter) } } else { if (c == ';') { - buffer[filter->status] = 0; if (buffer[1]=='#') { - /* numeric entity */ - for (pos=2; pos<filter->status; pos++) { - ent = ent*10 + (buffer[pos] - '0'); + if (filter->status > 2 && (buffer[2] == 'x' || buffer[2] == 'X')) { + if (filter->status > 3) { + /* numeric entity */ + for (pos=3; pos<filter->status; pos++) { + int v = buffer[pos]; + if (v >= '0' && v <= '9') { + v = v - '0'; + } else if (v >= 'A' && v <= 'F') { + v = v - 'A' + 10; + } else if (v >= 'a' && v <= 'f') { + v = v - 'a' + 10; + } else { + ent = -1; + break; + } + ent = ent * 16 + v; + } + } else { + ent = -1; + } + } else { + /* numeric entity */ + if (filter->status > 2) { + for (pos=2; pos<filter->status; pos++) { + int v = buffer[pos]; + if (v >= '0' && v <= '9') { + v = v - '0'; + } else { + ent = -1; + break; + } + ent = ent*10 + v; + } + } else { + ent = -1; + } + } + if (ent >= 0 && ent < 0x110000) { + CK((*filter->output_function)(ent, filter->data)); + } else { + for (pos = 0; pos < filter->status; pos++) { + CK((*filter->output_function)(buffer[pos], filter->data)); + } + CK((*filter->output_function)(c, filter->data)); } - CK((*filter->output_function)(ent, filter->data)); filter->status = 0; /*php_error_docref("ref.mbstring" TSRMLS_CC, E_NOTICE, "mbstring decoded '%s'=%d", buffer, ent);*/ } else { /* named entity */ - entity = (mbfl_html_entity_entry *)mbfl_html_entity_list; + buffer[filter->status] = 0; + entity = (mbfl_html_entity_entry *)mbfl_html_entity_list; while (entity->name) { if (!strcmp(buffer+1, entity->name)) { ent = entity->code; diff --git a/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk b/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk index 6d49a9ea7..0faf1cd46 100755 --- a/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk +++ b/ext/mbstring/libmbfl/filters/mk_sb_tbl.awk @@ -1,6 +1,6 @@ #!/usr/bin/awk -f # -# $Id: mk_sb_tbl.awk,v 1.2 2005/02/21 07:57:08 moriyoshi Exp $ +# $Id: mk_sb_tbl.awk 180308 2005-02-21 07:57:08Z moriyoshi $ # # Description: a script that generates a single byte code set to Unicode # mapping table. diff --git a/ext/mbstring/libmbfl/mbfl.rc b/ext/mbstring/libmbfl/mbfl.rc index 0ee7d97da..d885c624d 100644 --- a/ext/mbstring/libmbfl/mbfl.rc +++ b/ext/mbstring/libmbfl/mbfl.rc @@ -1,4 +1,4 @@ -/* $Id: mbfl.rc,v 1.5.6.1 2008/07/05 06:52:04 hirokawa Exp $ */ +/* $Id: mbfl.rc 262042 2008-07-05 06:52:04Z hirokawa $ */ 1 VERSIONINFO FILEVERSION 1,0,2,0 PRODUCTVERSION 1,0,2,0 diff --git a/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk b/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk index c9fdf7c5d..de2b7e0be 100644 --- a/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk +++ b/ext/mbstring/libmbfl/mbfl/mk_eaw_tbl.awk @@ -1,6 +1,6 @@ #!/usr/bin/awk -f # -# $Id: mk_eaw_tbl.awk,v 1.2 2005/02/20 22:18:08 moriyoshi Exp $ +# $Id: mk_eaw_tbl.awk 180252 2005-02-20 22:18:09Z moriyoshi $ # # Description: a script to generate east asian width table. # diff --git a/ext/mbstring/mb_gpc.c b/ext/mbstring/mb_gpc.c index 5e6d0ac17..b7dfd57dd 100644 --- a/ext/mbstring/mb_gpc.c +++ b/ext/mbstring/mb_gpc.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mb_gpc.c,v 1.17.2.2.2.3.2.3 2009/03/15 20:42:56 moriyoshi Exp $ */ +/* $Id: mb_gpc.c 284727 2009-07-24 23:48:58Z moriyoshi $ */ /* {{{ includes */ #ifdef HAVE_CONFIG_H @@ -59,7 +59,7 @@ MBSTRING_API SAPI_TREAT_DATA_FUNC(mbstr_treat_data) enum mbfl_no_encoding detected; php_mb_encoding_handler_info_t info; - { + if (arg != PARSE_STRING) { char *value = zend_ini_string("mbstring.internal_encoding", sizeof("mbstring.internal_encoding"), 0); _php_mb_ini_mbstring_internal_encoding_set(value, value ? strlen(value): 0 TSRMLS_CC); } diff --git a/ext/mbstring/mb_gpc.h b/ext/mbstring/mb_gpc.h index fdeb595d0..81d75d544 100644 --- a/ext/mbstring/mb_gpc.h +++ b/ext/mbstring/mb_gpc.h @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mb_gpc.h,v 1.5.2.1 2006/01/01 12:50:08 sniper Exp $ */ +/* $Id: mb_gpc.h 242949 2007-09-26 15:44:16Z cvs2svn $ */ /* {{{ includes */ #ifdef HAVE_CONFIG_H diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index 5f581f75f..3e46e8239 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.c,v 1.224.2.22.2.25.2.55 2009/05/27 13:42:17 tony2001 Exp $ */ +/* $Id: mbstring.c 281226 2009-05-27 13:42:17Z tony2001 $ */ /* * PHP 4 Multibyte String module "mbstring" diff --git a/ext/mbstring/mbstring.h b/ext/mbstring/mbstring.h index be7ac2bf3..ee0f8b8d2 100644 --- a/ext/mbstring/mbstring.h +++ b/ext/mbstring/mbstring.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mbstring.h,v 1.66.2.4.2.5.2.11 2009/03/15 20:42:56 moriyoshi Exp $ */ +/* $Id: mbstring.h 277211 2009-03-15 20:42:56Z moriyoshi $ */ /* * PHP 4 Multibyte String module "mbstring" (currently only for Japanese) diff --git a/ext/mbstring/php_mbregex.c b/ext/mbstring/php_mbregex.c index 67538f2df..a3c577848 100644 --- a/ext/mbstring/php_mbregex.c +++ b/ext/mbstring/php_mbregex.c @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mbregex.c,v 1.53.2.1.2.4.2.14 2009/06/05 18:50:32 mattwil Exp $ */ +/* $Id: php_mbregex.c 281727 2009-06-05 18:50:32Z mattwil $ */ #ifdef HAVE_CONFIG_H diff --git a/ext/mbstring/php_mbregex.h b/ext/mbstring/php_mbregex.h index c2b5df5ba..c9201df3f 100644 --- a/ext/mbstring/php_mbregex.h +++ b/ext/mbstring/php_mbregex.h @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mbregex.h,v 1.12.2.1.2.1.2.9 2008/12/31 11:15:38 sebastian Exp $ */ +/* $Id: php_mbregex.h 272370 2008-12-31 11:15:49Z sebastian $ */ #ifndef _PHP_MBREGEX_H #define _PHP_MBREGEX_H diff --git a/ext/mbstring/tests/bug46806.phpt b/ext/mbstring/tests/bug46806.phpt new file mode 100644 index 000000000..eec44b523 --- /dev/null +++ b/ext/mbstring/tests/bug46806.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #46806 (mb_wtrimwidth cutting to early) +--CREDITS-- +Sebastian Schürmann +sebs@php.net +Testfest 2009 +--SKIPIF-- +<?php if (!extension_loaded("mbstring")) die("skip mbstring is not available"); ?> +--FILE-- +<?php +echo mb_strimwidth('helloworld', 0, 5, '...', 'UTF-8') . "\n"; +echo mb_strimwidth('hello', 0, 5, '...', 'UTF-8'); +?> +--EXPECT-- +he... +hello diff --git a/ext/mbstring/tests/bug48645.phpt b/ext/mbstring/tests/bug48645.phpt new file mode 100644 index 000000000..6185442cc --- /dev/null +++ b/ext/mbstring/tests/bug48645.phpt @@ -0,0 +1,162 @@ +--TEST-- +Bug #48645 (mb_convert_encoding() doesn't understand hexadecimal html-entities) +--SKIPIF-- +<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?> +--FILE-- +<?php +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("	", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#x/;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#x:;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#x@;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#x`;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#xG;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#xg;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#x;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("	", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("
", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#X/;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#X:;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#X@;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#X`;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#XG;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#Xg;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#X;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("	", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#/;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#:;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("&#;", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("", "UTF-8", "HTML-ENTITIES"))); +var_dump(bin2hex(mb_convert_encoding("�", "UTF-8", "HTML-ENTITIES"))); +?> +--EXPECT-- +string(2) "00" +string(2) "01" +string(2) "02" +string(2) "03" +string(2) "04" +string(2) "05" +string(2) "06" +string(2) "07" +string(2) "08" +string(2) "09" +string(2) "0a" +string(2) "0b" +string(2) "0c" +string(2) "0d" +string(2) "0e" +string(2) "0f" +string(2) "0a" +string(2) "0b" +string(2) "0c" +string(2) "0d" +string(2) "0e" +string(2) "0f" +string(10) "2623782f3b" +string(10) "2623783a3b" +string(10) "262378403b" +string(10) "262378603b" +string(10) "262378473b" +string(10) "262378673b" +string(8) "2623783b" +string(2) "00" +string(2) "01" +string(2) "02" +string(2) "03" +string(2) "04" +string(2) "05" +string(2) "06" +string(2) "07" +string(2) "08" +string(2) "09" +string(2) "0a" +string(2) "0b" +string(2) "0c" +string(2) "0d" +string(2) "0e" +string(2) "0f" +string(2) "0a" +string(2) "0b" +string(2) "0c" +string(2) "0d" +string(2) "0e" +string(2) "0f" +string(10) "2623582f3b" +string(10) "2623583a3b" +string(10) "262358403b" +string(10) "262358603b" +string(10) "262358473b" +string(10) "262358673b" +string(8) "2623583b" +string(2) "00" +string(2) "01" +string(2) "02" +string(2) "03" +string(2) "04" +string(2) "05" +string(2) "06" +string(2) "07" +string(2) "08" +string(2) "09" +string(8) "26232f3b" +string(8) "26233a3b" +string(6) "26233b" +string(8) "f48fbfbf" +string(20) "2623783131303030303b" +string(8) "f48fbfbf" +string(20) "2623583131303030303b" +string(8) "f48fbfbf" +string(20) "2623313131343131323b" diff --git a/ext/mbstring/tests/mb_convert_kana.phpt b/ext/mbstring/tests/mb_convert_kana.phpt new file mode 100644 index 000000000..b3bffb61d --- /dev/null +++ b/ext/mbstring/tests/mb_convert_kana.phpt @@ -0,0 +1,60 @@ +--TEST-- +Testing mb_convert_kana() function +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +if (!function_exists("mb_convert_kana")) print "skip mb_convert_kana() not available"; +?> +--FILE-- +<?php +$zenKakuA = 'ァアィイゥウェエォオカガキギク'; +$zenKakuB = 'グケゲコゴサザシジスズセゼソゾタ'; +$zenKakuC = 'ダチヂッツヅテデトドナニヌネノハ'; +$zenKakuD = 'バパヒビピフブプヘベペホボポマミ'; +$zenKakuE = 'ムメモャヤュユョヨラリルレロヮワ'; +$zenKakuF = 'ヰヱヲンヴヵヶヷヸヹヺ・ーヽヾ'; + +$hanKakuA = '⦆。「」、・ヲァィゥェォャュョッ'; +$hanKakuB = 'ーアイウエオカキクケコサシスセソ'; +$hanKakuC = 'タチツテトナニヌネノハヒフヘホマ'; +$hanKakuD = 'ミムメモヤユヨラリルレロワン゙゚'; + + +echo $zenKakuA . ' => ' . mb_convert_kana($zenKakuA, 'AZKH', 'utf-8'); +echo "\n"; +echo $zenKakuB . ' => ' . mb_convert_kana($zenKakuB, 'azkh', 'utf-8'); +echo "\n"; +echo $zenKakuC . ' => ' . mb_convert_kana($zenKakuC, 'azkh', 'utf-8'); +echo "\n"; +echo $zenKakuD . ' => ' . mb_convert_kana($zenKakuD, 'azkh', 'utf-8'); +echo "\n"; +echo $zenKakuE . ' => ' . mb_convert_kana($zenKakuE, 'azkh', 'utf-8'); +echo "\n"; +echo $zenKakuF . ' => ' . mb_convert_kana($zenKakuF, 'azkh', 'utf-8'); +echo "\n"; +echo "\n"; +echo $hanKakuA . ' => ' . mb_convert_kana($hanKakuA, 'AZKH', 'utf-8'); +echo "\n"; +echo $hanKakuB . ' => ' . mb_convert_kana($hanKakuB, 'AZKH', 'utf-8'); +echo "\n"; +echo $hanKakuC . ' => ' . mb_convert_kana($hanKakuC, 'AZKH', 'utf-8'); +echo "\n"; +echo $hanKakuD . ' => ' . mb_convert_kana($hanKakuD, 'AZKH', 'utf-8'); +?> +--EXPECT-- +ァアィイゥウェエォオカガキギク => ァアィイゥウェエォオカガキギク +グケゲコゴサザシジスズセゼソゾタ => グケゲコゴサザシジスズセゼソゾタ +ダチヂッツヅテデトドナニヌネノハ => ダチヂッツヅテデトドナニヌネノハ +バパヒビピフブプヘベペホボポマミ => バパヒビピフブプヘベペホボポマミ +ムメモャヤュユョヨラリルレロヮワ => ムメモャヤュユョヨラリルレロワワ +ヰヱヲンヴヵヶヷヸヹヺ・ーヽヾ => イエヲンヴヵヶヷヸヹヺ・ーヽヾ + +⦆。「」、・ヲァィゥェォャュョッ => ⦆。「」、・ヲァィゥェォャュョッ +ーアイウエオカキクケコサシスセソ => ーアイウエオカキクケコサシスセソ +タチツテトナニヌネノハヒフヘホマ => タチツテトナニヌネノハヒフヘホマ +ミムメモヤユヨラリルレロワン゙゚ => ミムメモヤユヨラリルレロワン゛゜ + +--CREDITS-- +Jason Easter <easter@phpug-wuerzburg.de> +PHPUG Würzburg <phpug-wuerzburg.de> +Testfest 2009 2009-06-20 diff --git a/ext/mbstring/tests/mb_decode_numericentity.phpt b/ext/mbstring/tests/mb_decode_numericentity.phpt new file mode 100644 index 000000000..6008ef9a9 --- /dev/null +++ b/ext/mbstring/tests/mb_decode_numericentity.phpt @@ -0,0 +1,21 @@ +--TEST-- +Test mb_decode_numericentity() function : Convert HTML-Entities to UTF-8 +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +function_exists('mb_encode_mimeheader') or die("skip mb_encode_mimeheader() is not available in this build"); +?> +--FILE-- +<?php +$str1 = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'; +$str2 = 'ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦'; +$str3 = 'aŒbœcŠdše€fg'; +$convmap = array(0x0, 0x2FFFF, 0, 0xFFFF); +echo mb_decode_numericentity($str1, $convmap, "UTF-8")."\n"; +echo mb_decode_numericentity($str2, $convmap, "UTF-8")."\n"; +echo mb_decode_numericentity($str3, $convmap, "UTF-8")."\n"; +?> +--EXPECT-- +¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦ +aŒbœcŠdše€fg diff --git a/ext/mbstring/tests/mb_encode_numericentity.phpt b/ext/mbstring/tests/mb_encode_numericentity.phpt new file mode 100644 index 000000000..dffb41966 --- /dev/null +++ b/ext/mbstring/tests/mb_encode_numericentity.phpt @@ -0,0 +1,22 @@ +--TEST-- +Test mb_encode_numericentity() function : Convert UTF-8 to HTML-Entities +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +function_exists('mb_encode_mimeheader') or die("skip mb_encode_mimeheader() is not available in this build"); +?> +--FILE-- +<?php +$str1 = '¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'; +$str2 = 'ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦'; +$convmap = array(0x0, 0x2FFFF, 0, 0xFFFF); +echo mb_encode_numericentity($str1, $convmap, "UTF-8")."\n"; +echo mb_encode_numericentity($str2, $convmap, "UTF-8")."\n"; + +$convmap = array(0xFF, 0x2FFFF, 0, 0xFFFF); +echo mb_encode_numericentity('aŒbœcŠdše€fg', $convmap, "UTF-8")."\n"; +?> +--EXPECTF-- +¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ +ƒΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρςστυφχψωϑϒϖ•…′″‾⁄℘ℑℜ™ℵ←↑→↓↔↵⇐⇑⇒⇓⇔∀∂∃∅∇∈∉∋∏∑−∗√∝∞∠∧∨∩∪∫∴∼≅≈≠≡≤≥⊂⊃⊄⊆⊇⊕⊗⊥⋅⌈⌉⌊⌋〈〉◊♠♣♥♦ +aŒbœcŠdše€fg diff --git a/ext/mbstring/tests/mb_ereg3.phpt b/ext/mbstring/tests/mb_ereg3.phpt new file mode 100644 index 000000000..abec3e7ad --- /dev/null +++ b/ext/mbstring/tests/mb_ereg3.phpt @@ -0,0 +1,44 @@ +--TEST-- +mb_ereg() returning matches +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +if (!function_exists("mb_ereg")) print "skip mb_ereg() not available"; +?> +--FILE-- +<?php + +$a = -1; $b = -1; $c = -1; +mbereg($a, $b, $c); +var_dump($a, $b, $c); + +mberegi($a, $b, $c); +var_dump($a, $b, $c); + +mbereg_search_init($a, $b, $c); +var_dump($a, $b, $c); + +echo "Done\n"; +?> +--EXPECTF-- +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} + +Warning: mbereg_search_init() expects parameter 3 to be %binary_string_optional%, array given in %s on line %d +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} +Done diff --git a/ext/mbstring/tests/mb_ereg4.phpt b/ext/mbstring/tests/mb_ereg4.phpt new file mode 100644 index 000000000..8dca4358f --- /dev/null +++ b/ext/mbstring/tests/mb_ereg4.phpt @@ -0,0 +1,44 @@ +--TEST-- +mb_ereg() returning matches +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +if (!function_exists("mb_ereg")) print "skip mb_ereg() not available"; +?> +--FILE-- +<?php + +$a = -1; $b = -1; $c = -1; +mbereg($a, $b, $c); +var_dump($a, $b, $c); + +mberegi($a, $b, $c); +var_dump($a, $b, $c); + +mbereg_search_init($a, $b, $c); +var_dump($a, $b, $c); + +echo "Done\n"; +?> +--EXPECTF-- +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} + +Warning: mbereg_search_init() expects parameter 3 to be string, array given in %s on line %d +int(-1) +int(-1) +array(1) { + [0]=> + string(2) "-1" +} +Done diff --git a/ext/mbstring/tests/mb_ereg_search.phpt b/ext/mbstring/tests/mb_ereg_search.phpt new file mode 100755 index 000000000..4df54c482 --- /dev/null +++ b/ext/mbstring/tests/mb_ereg_search.phpt @@ -0,0 +1,39 @@ +--TEST-- +Testing mb_ereg_search() function +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +function_exists('mb_ereg_search') or die("skip mb_ereg_search() is not available in this build"); +?> +--FILE-- +<?php + $str = "中国abc + abc ?!?!字符# china string"; + + $reg = "\w+"; + + mb_regex_encoding("UTF-8"); + + mb_ereg_search_init($str, $reg); + $r = mb_ereg_search(); + + if(!$r) + { + echo "null\n"; + } + else + { + $r = mb_ereg_search_getregs(); //get first result + do + { + var_dump($r[0]); + $r = mb_ereg_search_regs();//get next result + } + while($r); + } +?> +--EXPECT-- +string(9) "中国abc" +string(3) "abc" +string(6) "字符" +string(5) "china" +string(6) "string" diff --git a/ext/mbstring/tests/mb_ereg_search_pos.phpt b/ext/mbstring/tests/mb_ereg_search_pos.phpt new file mode 100644 index 000000000..fcd98e16c --- /dev/null +++ b/ext/mbstring/tests/mb_ereg_search_pos.phpt @@ -0,0 +1,31 @@ +--TEST-- +mb_ereg_search_pos() # a test for the basic function of mb_ereg_search_pos +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +?> +--FILE-- +<?php + +$test_str = 'Itrntinliztin'; + +if(mb_ereg_search_init($test_str)) +{ + $val=mb_ereg_search_pos("ntin"); + + var_dump($val); + +} +else{ + var_dump("false"); +} +?> +--EXPECT-- +array(2) { + [0]=> + int(5) + [1]=> + int(6) +} + + diff --git a/ext/mbstring/tests/mb_ereg_search_regs.phpt b/ext/mbstring/tests/mb_ereg_search_regs.phpt new file mode 100644 index 000000000..2cc55a7bd --- /dev/null +++ b/ext/mbstring/tests/mb_ereg_search_regs.phpt @@ -0,0 +1,28 @@ +--TEST-- +Funktionstest mb_ereg_search_regs() +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +function_exists('mb_ereg_search_regs') or die("skip mb_ereg_search_regs() not available"); +?> +--FILE-- +<?php + // homepage: + + //$mb_str = "Алексей Федорович Карамазов был Алексей Федорович Карамазов был kyrillischer string string"; + // = "Lorem ipsum dolor sit amet" + + mb_ereg_search_init("Алексей Федорович Карамазов был Алексей Федорович Карамазов был"); + + + + $match= mb_ereg_search_regs("ов"); + var_dump($match); + + +?> +--EXPECT-- +array(1) { + [0]=> + string(4) "ов" +} diff --git a/ext/mbstring/tests/mb_eregi.phpt b/ext/mbstring/tests/mb_eregi.phpt new file mode 100644 index 000000000..ced6fadcd --- /dev/null +++ b/ext/mbstring/tests/mb_eregi.phpt @@ -0,0 +1,20 @@ +--TEST-- +mb_eregi() and invalid arguments +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +if (!function_exists("mb_eregi")) print "skip mb_eregi() not available"; +?> +--FILE-- +<?php + +mb_regex_encoding('utf-8'); + +var_dump(mb_eregi('z', 'XYZ')); +var_dump(mb_eregi('xyzp', 'XYZ')); +var_dump(mb_eregi('ö', 'Öäü')); +?> +--EXPECT-- +int(1) +bool(false) +int(1) diff --git a/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt b/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt new file mode 100644 index 000000000..ced6fadcd --- /dev/null +++ b/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt @@ -0,0 +1,20 @@ +--TEST-- +mb_eregi() and invalid arguments +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +if (!function_exists("mb_eregi")) print "skip mb_eregi() not available"; +?> +--FILE-- +<?php + +mb_regex_encoding('utf-8'); + +var_dump(mb_eregi('z', 'XYZ')); +var_dump(mb_eregi('xyzp', 'XYZ')); +var_dump(mb_eregi('ö', 'Öäü')); +?> +--EXPECT-- +int(1) +bool(false) +int(1) diff --git a/ext/mbstring/tests/mb_eregi_replace.phpt b/ext/mbstring/tests/mb_eregi_replace.phpt new file mode 100644 index 000000000..dd6162c25 --- /dev/null +++ b/ext/mbstring/tests/mb_eregi_replace.phpt @@ -0,0 +1,37 @@ +--TEST-- +Testing mb_eregi_replace() function +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +function_exists('mb_eregi_replace') or die("skip mb_eregi_replace() is not available in this build"); +?> +--FILE-- +<?php +function do_translit($st) { + $replacement = array( + "й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n", + "г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'", + "ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r", + "о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e", + "я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t", + "ь"=>"\'","б"=>"b","ю"=>"yu", + "Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N", + "Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'", + "Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R", + "О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E", + "Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T", + "Ь"=>"\'","Б"=>"B","Ю"=>"YU", + ); + + foreach($replacement as $i=>$u) { + $st = mb_eregi_replace($i,$u,$st); + } + return $st; +} + +echo do_translit("Фуцк"); +?> +--EXPECT-- +Fuck +--CREDITS-- +Testfest Wuerzburg 2009-06-20 |