diff options
| author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
|---|---|---|
| committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:37:27 -0400 |
| commit | 2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch) | |
| tree | 41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/standard/tests/strings | |
| parent | d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff) | |
| download | php-upstream/5.2.2.tar.gz | |
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'ext/standard/tests/strings')
40 files changed, 2875 insertions, 25 deletions
diff --git a/ext/standard/tests/strings/bug22207.phpt b/ext/standard/tests/strings/bug22207.phpt index 688bb5b74..32a15d73c 100644 --- a/ext/standard/tests/strings/bug22207.phpt +++ b/ext/standard/tests/strings/bug22207.phpt @@ -6,6 +6,6 @@ Bug #22207 (missing 0 when using the e notation in *printf functions) var_dump(sprintf("%10.5e\n", 1.1)); ?> --EXPECT-- -1.1000e+0 -string(11) " 1.1000e+0 +1.10000e+0 +string(11) "1.10000e+0 " diff --git a/ext/standard/tests/strings/bug26819.phpt b/ext/standard/tests/strings/bug26819.phpt index 4a5353943..2d639a932 100644 --- a/ext/standard/tests/strings/bug26819.phpt +++ b/ext/standard/tests/strings/bug26819.phpt @@ -6,4 +6,4 @@ $a = array(); var_dump(http_build_query($a)); ?> --EXPECT-- -NULL +string(0) "" diff --git a/ext/standard/tests/strings/bug36392.phpt b/ext/standard/tests/strings/bug36392.phpt new file mode 100644 index 000000000..8e4cd16c6 --- /dev/null +++ b/ext/standard/tests/strings/bug36392.phpt @@ -0,0 +1,16 @@ +--TEST-- +Bug #36392 (wrong number of decimal digits with %e specifier in sprintf) +--FILE-- +<?php + echo sprintf("%e\n", 1.123456789); + echo sprintf("%.10e\n", 1.123456789); + echo sprintf("%.0e\n", 1.123456789); + echo sprintf("%.1e\n", 1.123456789); + echo sprintf("%5.1e\n", 1.123456789); +?> +--EXPECT-- +1.123457e+0 +1.1234567890e+0 +1e+0 +1.1e+0 +1.1e+0 diff --git a/ext/standard/tests/strings/bug38770.phpt b/ext/standard/tests/strings/bug38770.phpt new file mode 100644 index 000000000..2494a911b --- /dev/null +++ b/ext/standard/tests/strings/bug38770.phpt @@ -0,0 +1,25 @@ +--TEST-- +Bug #38770 (unpack() broken with longs on 64 bit machines) +--FILE-- +<?php + +foreach (array('N','I','l') as $v) { + print_r(unpack($v, pack($v, -30000))); +} + +echo "Done\n"; +?> +--EXPECT-- +Array +( + [1] => -30000 +) +Array +( + [1] => -30000 +) +Array +( + [1] => -30000 +) +Done diff --git a/ext/standard/tests/strings/bug39350.phpt b/ext/standard/tests/strings/bug39350.phpt new file mode 100644 index 000000000..53d58b709 --- /dev/null +++ b/ext/standard/tests/strings/bug39350.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #39350 (implode/join() crash on empty input strings) +--FILE-- +<?php + +implode('', array(null)); +implode('', array(false)); +implode('', array("")); + +echo "Done\n"; +?> +--EXPECT-- +Done diff --git a/ext/standard/tests/strings/bug39621.phpt b/ext/standard/tests/strings/bug39621.phpt Binary files differnew file mode 100644 index 000000000..1a33147b6 --- /dev/null +++ b/ext/standard/tests/strings/bug39621.phpt diff --git a/ext/standard/tests/strings/bug39873.phpt b/ext/standard/tests/strings/bug39873.phpt new file mode 100644 index 000000000..e73f3c851 --- /dev/null +++ b/ext/standard/tests/strings/bug39873.phpt @@ -0,0 +1,17 @@ +--TEST-- +Bug #39873 (number_format() breaks with locale & decimal points) +--SKIPIF-- +<?php +if (!setlocale(LC_ALL, "ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1")) { + die("skip locale needed for this test is not supported on this platform"); +} +?> +--FILE-- +<?php + setlocale(LC_ALL, "ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1"); + $num = 0+"1234.56"; + echo number_format($num,2); + echo "\n"; +?> +--EXPECT-- +1,234.56 diff --git a/ext/standard/tests/strings/bug40432.phpt b/ext/standard/tests/strings/bug40432.phpt new file mode 100644 index 000000000..6db2e94e5 --- /dev/null +++ b/ext/standard/tests/strings/bug40432.phpt @@ -0,0 +1,8 @@ +--TEST-- +Bug #40432 (strip_tags() fails with greater than in attribute) +--FILE-- +<?php +echo strip_tags('<span title="test > all">this</span>') . "\n"; +?> +--EXPECT-- +this diff --git a/ext/standard/tests/strings/bug40637.phpt b/ext/standard/tests/strings/bug40637.phpt new file mode 100644 index 000000000..5669083aa --- /dev/null +++ b/ext/standard/tests/strings/bug40637.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #40637 (strip_tags() does not handle single quotes correctly) +--FILE-- +<?php + +$html = '<span title="Bug \' Trigger">Text</span>'; +var_dump(strip_tags($html)); + +echo "Done\n"; +?> +--EXPECTF-- +string(4) "Text" +Done diff --git a/ext/standard/tests/strings/bug40704.phpt b/ext/standard/tests/strings/bug40704.phpt new file mode 100644 index 000000000..82e91b5c8 --- /dev/null +++ b/ext/standard/tests/strings/bug40704.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #40704 (strip_tags() does not handle single quotes correctly) +--FILE-- +<?php + +$html = "<div>Bug ' Trigger</div> Missing Text"; +var_dump(strip_tags($html)); + +echo "Done\n"; +?> +--EXPECT-- +string(26) "Bug ' Trigger Missing Text" +Done diff --git a/ext/standard/tests/strings/bug40754.phpt b/ext/standard/tests/strings/bug40754.phpt new file mode 100644 index 000000000..23a459317 --- /dev/null +++ b/ext/standard/tests/strings/bug40754.phpt @@ -0,0 +1,63 @@ +--TEST-- +Bug #40754 (Overflow checks inside string functions) +--FILE-- +<?php + +$v = 2147483647; + +var_dump(substr("abcde", 1, $v)); +var_dump(substr_replace("abcde", "x", $v, $v)); + +var_dump(strspn("abcde", "abc", $v, $v)); +var_dump(strcspn("abcde", "abc", $v, $v)); + +var_dump(substr_count("abcde", "abc", $v, $v)); +var_dump(substr_compare("abcde", "abc", $v, $v)); + +var_dump(stripos("abcde", "abc", $v)); +var_dump(substr_count("abcde", "abc", $v, 1)); +var_dump(substr_count("abcde", "abc", 1, $v)); +var_dump(strpos("abcde", "abc", $v)); +var_dump(stripos("abcde", "abc", $v)); +var_dump(strrpos("abcde", "abc", $v)); +var_dump(strripos("abcde", "abc", $v)); +var_dump(strncmp("abcde", "abc", $v)); +var_dump(chunk_split("abcde", $v, "abc")); +var_dump(substr("abcde", $v, $v)); + +?> +--EXPECTF-- +string(4) "bcde" +bool(false) +bool(false) +bool(false) + +Warning: substr_count(): Offset value 2147483647 exceeds string length. in %s on line %d +bool(false) + +Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d +bool(false) + +Warning: stripos(): Offset not contained in string. in %s on line %d +bool(false) + +Warning: substr_count(): Offset value 2147483647 exceeds string length. in %s on line %d +bool(false) + +Warning: substr_count(): Length value 2147483647 exceeds string length. in %s on line %d +bool(false) + +Warning: strpos(): Offset not contained in string. in %s on line %d +bool(false) + +Warning: stripos(): Offset not contained in string. in %s on line %d +bool(false) + +Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d +bool(false) + +Notice: strripos(): Offset is greater than the length of haystack string in %s on line %d +bool(false) +int(2) +string(8) "abcdeabc" +bool(false) diff --git a/ext/standard/tests/strings/bug40915.phpt b/ext/standard/tests/strings/bug40915.phpt Binary files differnew file mode 100644 index 000000000..9b26896e7 --- /dev/null +++ b/ext/standard/tests/strings/bug40915.phpt diff --git a/ext/standard/tests/strings/convert_cyr_string.phpt b/ext/standard/tests/strings/convert_cyr_string.phpt new file mode 100644 index 000000000..a6f365731 --- /dev/null +++ b/ext/standard/tests/strings/convert_cyr_string.phpt @@ -0,0 +1,54 @@ +--TEST-- +basic convert_cyr_string() tests +--FILE-- +<?php + +var_dump(convert_cyr_string()); +var_dump(convert_cyr_string("")); +var_dump(convert_cyr_string("", "")); +var_dump(convert_cyr_string("", "", "")); +var_dump(convert_cyr_string(array(), array(), array())); + +var_dump(convert_cyr_string("[[[[[[", "q", "m")); +var_dump(convert_cyr_string("[[[[[[", "k", "w")); +var_dump(convert_cyr_string("[[[[[[", "m", "a")); +var_dump(convert_cyr_string("[[[[[[", "d", "i")); +var_dump(convert_cyr_string("[[[[[[", "w", "k")); +var_dump(convert_cyr_string("[[[[[[", "i", "q")); +var_dump(convert_cyr_string("", "d", "i")); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: Wrong parameter count for convert_cyr_string() in %s on line %d +NULL + +Warning: Wrong parameter count for convert_cyr_string() in %s on line %d +NULL + +Warning: Wrong parameter count for convert_cyr_string() in %s on line %d +NULL + +Warning: convert_cyr_string(): Unknown source charset: in %s on line %d + +Warning: convert_cyr_string(): Unknown destination charset: in %s on line %d +string(0) "" + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +string(5) "Array" + +Warning: convert_cyr_string(): Unknown source charset: q in %s on line %d +string(6) "[[[[[[" +string(6) "[[[[[[" +string(6) "[[[[[[" +string(6) "[[[[[[" +string(6) "[[[[[[" + +Warning: convert_cyr_string(): Unknown destination charset: q in %s on line %d +string(6) "[[[[[[" +string(0) "" +Done diff --git a/ext/standard/tests/strings/crypt.phpt b/ext/standard/tests/strings/crypt.phpt index 5368178e1..ce178f684 100644 --- a/ext/standard/tests/strings/crypt.phpt +++ b/ext/standard/tests/strings/crypt.phpt @@ -24,9 +24,20 @@ echo (CRYPT_EXT_DES) ? ((crypt($str, $salt2) === $res_2) ? 'EXT' : 'EXT - ERROR echo (CRYPT_MD5) ? ((crypt($str, $salt3) === $res_3) ? 'MD5' : 'MD5 - ERROR') : 'MD5', "\n"; echo (CRYPT_BLOWFISH) ? ((crypt($str, $salt4) === $res_4) ? 'BLO' : 'BLO - ERROR') : 'BLO', "\n"; +var_dump(crypt($str)); +var_dump(crypt()); +var_dump(crypt("", "", "")); + ?> ---EXPECT-- +--EXPECTF-- STD EXT MD5 BLO +string(%d) "%s" + +Warning: crypt() expects at least 1 parameter, 0 given in %s on line %d +NULL + +Warning: crypt() expects at most 2 parameters, 3 given in %s on line %d +NULL diff --git a/ext/standard/tests/strings/get_meta_tags.phpt b/ext/standard/tests/strings/get_meta_tags.phpt new file mode 100644 index 000000000..f086b99b7 --- /dev/null +++ b/ext/standard/tests/strings/get_meta_tags.phpt @@ -0,0 +1,95 @@ +--TEST-- +get_meta_tags() tests +--FILE-- +<?php + +$filename = dirname(__FILE__)."/get_meta_tags.html"; + +$data = <<<DATA +<meta name="author" content="name"> +<meta name="keywords" content="php documentation"> +<meta name="DESCRIPTION" content="a php manual"> +<meta name="geo.position" content="49.33;-86.59"> +</head> <!-- parsing stops here --> +DATA; + +$data1 = <<<DATA +<html> + <head> + <meta name="author" content="name"> + <meta name="keywords" content="php documentation"> + <meta name="DESCRIPTION" content="a php manual"> + <meta name="geo.position" content="49.33;-86.59"> + </head> + <body> + <meta name="author" content="name1"> + <meta name="keywords" content="php documentation1"> + <meta name="DESCRIPTION" content="a php manual1"> + <meta name="geo.position" content="49.33;-86.591"> + </body> +</html> +DATA; + +$data2 = <<<DATA +<meta name="author" content="name" +<meta name="keywords" content="php documentation"> +DATA; + +$data3 = <<<DATA +<meta <meta name="keywords" content="php documentation"> +DATA; + +$data4 = <<<DATA +<meta name="author" content="name" +<meta name="keywords" content="php documentation" +DATA; + +$array = array($data, $data1, $data2, $data3, $data4, "", "<>", "<meta<<<<<"); + +foreach ($array as $html) { + file_put_contents($filename, $html); + var_dump(get_meta_tags($filename)); +} + +@unlink($filename); + +echo "Done\n"; +?> +--EXPECTF-- +array(4) { + ["author"]=> + string(4) "name" + ["keywords"]=> + string(17) "php documentation" + ["description"]=> + string(12) "a php manual" + ["geo_position"]=> + string(12) "49.33;-86.59" +} +array(4) { + ["author"]=> + string(4) "name" + ["keywords"]=> + string(17) "php documentation" + ["description"]=> + string(12) "a php manual" + ["geo_position"]=> + string(12) "49.33;-86.59" +} +array(1) { + ["keywords"]=> + string(17) "php documentation" +} +array(1) { + ["keywords"]=> + string(17) "php documentation" +} +array(0) { +} +array(0) { +} +array(0) { +} +array(0) { +} +Done diff --git a/ext/standard/tests/strings/highlight_file.phpt b/ext/standard/tests/strings/highlight_file.phpt new file mode 100644 index 000000000..2c83ee299 --- /dev/null +++ b/ext/standard/tests/strings/highlight_file.phpt @@ -0,0 +1,68 @@ +--TEST-- +highlight_file() tests +--INI-- +highlight.string=#DD0000 +highlight.comment=#FF9900 +highlight.keyword=#007700 +highlight.bg=#FFFFFF +highlight.default=#0000BB +highlight.html=#000000 +--FILE-- +<?php + +$filename = dirname(__FILE__)."/highlight_file.dat"; + +var_dump(highlight_file()); +var_dump(highlight_file($filename)); + +$data = <<<DATA +<?php echo "test"; ?> +DATA; + +file_put_contents($filename, $data); +var_dump(highlight_file($filename)); + +$data = <<<DATA +<?php echo "test ?> +DATA; + +file_put_contents($filename, $data); +var_dump(highlight_file($filename)); + +$data = ' +<?php + class test { + public $var = 1; + private function foo() { echo "foo"; } + public function bar() { var_dump(test::foo()); } + } +?>'; + +file_put_contents($filename, $data); +var_dump(highlight_file($filename)); + + +@unlink($filename); +echo "Done\n"; +?> +--EXPECTF-- +Warning: highlight_file() expects at least 1 parameter, 0 given in %s on line %d +bool(false) + +Warning: highlight_file(%shighlight_file.dat): failed to open stream: No such file or directory in %s on line %d + +Warning: highlight_file(): Failed opening '%shighlight_file.dat' for highlighting in %s on line %d +bool(false) +<code><span style="color: #000000"> +<span style="color: #0000BB"><?php </span><span style="color: #007700">echo </span><span style="color: #DD0000">"test"</span><span style="color: #007700">; </span><span style="color: #0000BB">?></span> +</span> +</code>bool(true) +<code><span style="color: #000000"> +<span style="color: #0000BB"><?php </span><span style="color: #007700">echo </span><span style="color: #DD0000">"test ?></span> +</span> +</code>bool(true) +<code><span style="color: #000000"> +<br /><span style="color: #0000BB"><?php <br /> </span><span style="color: #007700">class </span><span style="color: #0000BB">test </span><span style="color: #007700">{ <br /> public </span><span style="color: #0000BB">$var </span><span style="color: #007700">= </span><span style="color: #0000BB">1</span><span style="color: #007700">; <br /> private function </span><span style="color: #0000BB">foo</span><span style="color: #007700">() { echo </span><span style="color: #DD0000">"foo"</span><span style="color: #007700">; }<br /> public function </span><span style="color: #0000BB">bar</span><span style="color: #007700">() { </span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">test</span><span style="color: #007700">::</span><span style="color: #0000BB">foo</span><span style="color: #007700">()); }<br /> } <br /></span><span style="color: #0000BB">?></span> +</span> +</code>bool(true) +Done diff --git a/ext/standard/tests/strings/htmlentities02.phpt b/ext/standard/tests/strings/htmlentities02.phpt index 666c4f650..babec44b5 100644 --- a/ext/standard/tests/strings/htmlentities02.phpt +++ b/ext/standard/tests/strings/htmlentities02.phpt @@ -2,8 +2,8 @@ htmlentities() test 2 (setlocale / fr_FR.ISO-8859-15) --SKIPIF-- <?php -$result = (bool)setlocale(LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15"); -if (!$result || preg_match('/ISO/i', setlocale(LC_CTYPE, 0)) == 0) { +$result = (bool)setlocale(LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15", 'fr_FR@euro'); +if (!$result) { die("skip setlocale() failed\n"); } echo "warn possibly braindead libc\n"; @@ -14,7 +14,7 @@ default_charset= mbstring.internal_encoding=none --FILE-- <?php - setlocale( LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15" ); + setlocale(LC_CTYPE, "fr_FR.ISO-8859-15", "fr_FR.ISO8859-15", 'fr_FR@euro'); var_dump(htmlentities("\xbc\xbd\xbe", ENT_QUOTES, '')); ?> --EXPECT-- diff --git a/ext/standard/tests/strings/levenshtein.phpt b/ext/standard/tests/strings/levenshtein.phpt new file mode 100644 index 000000000..d7d5e7a44 --- /dev/null +++ b/ext/standard/tests/strings/levenshtein.phpt @@ -0,0 +1,88 @@ +--TEST-- +levenshtein() function test +--FILE-- +<?php + +function test_me($title,$expect,$text1,$text2,$cost1="",$cost2="",$cost3="") { + + if ($cost1=="") { + $result=levenshtein($text1,$text2); + } + elseif ($cost2=="") { + $result=levenshtein($text1,$text2,$cost1); + } + else { + $result=levenshtein($text1,$text2,$cost1,$cost2,$cost3); + } + if($result==$expect) return 0; + + echo "$title: result is $result instead of $expect "; + echo "for '$text1'/'$text2' "; + if($cost1) echo "($cost1:$cost2:$cost3)"; + echo "\n"; + + return 1; +} + +$n=0; + +$n += test_me("equal" , 0, "12345", "12345"); +$n += test_me("1st empty" , 3, "", "xzy"); +$n += test_me("2nd empty" , 3, "xzy", ""); +$n += test_me("both empty" , 0, "", ""); +$n += test_me("1 char" , 1, "1", "2"); +$n += test_me("2 char swap", 2, "12", "21"); + +$n += test_me("inexpensive delete", 2, "2121", "11", 2, 1, 1); +$n += test_me("expensive delete" , 10, "2121", "11", 2, 1, 5); +$n += test_me("inexpensive insert", 2, "11", "2121", 1, 1, 1); +$n += test_me("expensive insert" , 10, "11", "2121", 5, 1, 1); + +$n += test_me("expensive replace" , 3, "111", "121", 2, 3, 2); +$n += test_me("very expensive replace", 4, "111", "121", 2, 9, 2); + +$n += test_me("bug #7368", 2, "13458", "12345"); +$n += test_me("bug #7368", 2, "1345", "1234"); + +$n += test_me("bug #6562", 1, "debugg", "debug"); +$n += test_me("bug #6562", 1, "ddebug", "debug"); +$n += test_me("bug #6562", 2, "debbbug", "debug"); +$n += test_me("bug #6562", 1, "debugging", "debuging"); + +$n += test_me("bug #16473", 2, "a", "bc"); +$n += test_me("bug #16473", 2, "xa", "xbc"); +$n += test_me("bug #16473", 2, "xax", "xbcx"); +$n += test_me("bug #16473", 2, "ax", "bcx"); + +$n += test_me("custom", -1, "111", "121", "my_levcode"); +$n += test_me("lt maxlength1", 254, "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu", "A"); +$n += test_me("gt maxlength1", -1, "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv", "A"); + +$n += test_me("lt maxlength2", 254, "A", "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsu"); +$n += test_me("gt maxlength2", -1, "A", "AbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrstuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuvwxyzAbcdefghijklmnopqrtsuv"); + +echo ($n==0)?"all passed\n":"$n failed\n"; + +var_dump(levenshtein(array(), array())); +var_dump(levenshtein("", "", -1, -1, -1)); +var_dump(levenshtein("", "", 10, 10, 10)); +var_dump(levenshtein("")); + +?> +--EXPECTF-- +Warning: levenshtein(): The general Levenshtein support is not there yet in %s on line %d + +Warning: levenshtein(): Argument string(s) too long in %s on line %d + +Warning: levenshtein(): Argument string(s) too long in %s on line %d +all passed + +Notice: Array to string conversion in %s on line %d + +Notice: Array to string conversion in %s on line %d +int(0) +int(0) +int(0) + +Warning: Wrong parameter count for levenshtein() in %s on line %d +NULL diff --git a/ext/standard/tests/strings/ltrim.phpt b/ext/standard/tests/strings/ltrim.phpt new file mode 100644 index 000000000..cb64b9cd3 --- /dev/null +++ b/ext/standard/tests/strings/ltrim.phpt @@ -0,0 +1,83 @@ +--TEST-- +Test ltrim() function +--FILE-- +<?php + +/* Testing for Error conditions */ + +/* Invalid Number of Arguments */ + + echo "\n *** Output for Error Conditions ***\n"; + + echo "\n *** Output for zero argument ***\n"; + var_dump( ltrim() ); + + echo "\n *** Output for more than valid number of arguments (Valid are 1 or 2 arguments) ***\n"; + var_dump( ltrim("", " ", 1) ); + +/* heredoc string */ +$str = <<<EOD +us +ing heredoc string +EOD; + +echo "\n *** Using heredoc string ***\n"; +var_dump( ltrim($str, "\nusi") ); + +/* Testing the Normal behaviour of ltrim() function */ + + echo "\n *** Output for Normal Behaviour ***\n"; + var_dump ( ltrim(" \t\0 ltrim test") ); /* without second Argument */ + var_dump ( ltrim(" ltrim test" , "") ); /* no characters in second Argument */ + var_dump ( ltrim(" ltrim test", NULL) ); /* with NULL as second Argument */ + var_dump ( ltrim(" ltrim test", true) ); /* with boolean value as second Argument */ + var_dump ( ltrim(" ltrim test", " ") ); /* with single space as second Argument */ + var_dump ( ltrim("\t\n\r\0\x0B ltrim test", "\t\n\r\0\x0B") ); /* with multiple escape sequences as second Argument */ + var_dump ( ltrim("ABCXYZltrim test", "A..Z") ); /* with characters range as second Argument */ + var_dump ( ltrim("0123456789ltrim test", "0..9") ); /* with numbers range as second Argument */ + var_dump ( ltrim("@$#ltrim test", "#@$") ); /* with some special characters as second Argument */ + + + echo "\n *** Output for scalar argument) ***\n"; + var_dump( ltrim( 12345 ) ); /* Scalar argument */ + + echo "\n *** Output for NULL argument) ***\n"; + var_dump( ltrim(NULL) ); /* NULL Argument */ + +echo "\nDone\n"; + +?> +--EXPECTF-- +*** Output for Error Conditions *** + + *** Output for zero argument *** + +Warning: Wrong parameter count for ltrim() in %s on line %d +NULL + + *** Output for more than valid number of arguments (Valid are 1 or 2 arguments) *** + +Warning: Wrong parameter count for ltrim() in %s on line %d +NULL + + *** Using heredoc string *** +string(17) "ng heredoc string" + + *** Output for Normal Behaviour *** +string(10) "ltrim test" +string(13) " ltrim test" +string(18) " ltrim test" +string(18) " ltrim test" +string(10) "ltrim test" +string(11) " ltrim test" +string(10) "ltrim test" +string(10) "ltrim test" +string(10) "ltrim test" + + *** Output for scalar argument) *** +string(5) "12345" + + *** Output for NULL argument) *** +string(0) "" + +Done diff --git a/ext/standard/tests/strings/metaphone.phpt b/ext/standard/tests/strings/metaphone.phpt new file mode 100644 index 000000000..d1aa9af54 --- /dev/null +++ b/ext/standard/tests/strings/metaphone.phpt @@ -0,0 +1,41 @@ +--TEST-- +metaphone() tests +--FILE-- +<?php + +var_dump(metaphone()); +var_dump(metaphone("")); +var_dump(metaphone(-1)); +var_dump(metaphone(-1, -1)); + +var_dump(metaphone("valid phrase", -1)); +var_dump(metaphone("valid phrase", 0)); +var_dump(metaphone("valid phrase", 10000)); + +$array = array( +"They fell forward, grovelling heedlessly on the cold earth.", +"But the shadow of horror wheeled and returned, passing lower now, right above them, sweeping the fen-reek with its ghastly wings.", +"And then it was gone, flying back to Mordor with the speed of the wrath of Sauron; and behind it the wind roared away, leaving the Dead Marshes bare and bleak.", +"The naked waste, as far as the eye could pierce, even to the distant menace of the mountains, was dappled with the fitful moonlight." +); + +foreach($array as $str) { + var_dump(metaphone($str)); +} + +echo "Done\n"; +?> +--EXPECTF-- +Warning: metaphone() expects at least 1 parameter, 0 given in %s on line %d +NULL +string(0) "" +string(0) "" +bool(false) +bool(false) +string(6) "FLTFRS" +string(6) "FLTFRS" +string(26) "0FLFRWRTKRFLNKHTLSLN0KLTR0" +string(56) "BT0XTFHRRHLTNTRTRNTPSNKLWRNRFTBF0MSWPNK0FNRKW0TSFSTLWNKS" +string(69) "ANT0NTWSKNFLYNKBKTMRTRW00SPTF0R0FSRNNTBHNTT0WNTRRTWLFNK0TTMRXSBRNTBLK" +string(56) "0NKTWSTSFRS0YKLTPRSFNT0TSTNTMNSF0MNTNSWSTPLTW00FTFLMNLFT" +Done diff --git a/ext/standard/tests/strings/pack.phpt b/ext/standard/tests/strings/pack.phpt new file mode 100644 index 000000000..b36eee1e5 --- /dev/null +++ b/ext/standard/tests/strings/pack.phpt @@ -0,0 +1,385 @@ +--TEST-- +Generic pack()/unpack() tests +--SKIPIF-- +<?php +if (PHP_INT_MAX > 2147483647) { + die("skip 32bit test only"); +} +?> +--FILE-- +<?php +print_r(unpack("A", pack("A", "hello world"))); +print_r(unpack("A*", pack("A*", "hello world"))); +echo '"'.pack("A9", "hello").'"'; +echo "\n"; + +print_r(unpack("C", pack("C", -127))); +print_r(unpack("C", pack("C", 127))); +print_r(unpack("C", pack("C", 255))); +print_r(unpack("C", pack("C", -129))); + +print_r(unpack("H", pack("H", 0x04))); + +print_r(unpack("I", pack("I", 65534))); +print_r(unpack("I", pack("I", 0))); +print_r(unpack("I", pack("I", -1000))); +print_r(unpack("I", pack("I", -64434))); +print_r(unpack("I", pack("I", 4294967296))); +print_r(unpack("I", pack("I", -4294967296))); + +print_r(unpack("L", pack("L", 65534))); +print_r(unpack("L", pack("L", 0))); +print_r(unpack("L", pack("L", 2147483650))); +print_r(unpack("L", pack("L", 4294967295))); +print_r(unpack("L", pack("L", -2147483648))); + +print_r(unpack("N", pack("N", 65534))); +print_r(unpack("N", pack("N", 0))); +print_r(unpack("N", pack("N", 2147483650))); +print_r(unpack("N", pack("N", 4294967296))); +print_r(unpack("N", pack("N", -2147483648))); +print_r(unpack("N", pack("N", -30000))); + +print_r(unpack("S", pack("S", 65534))); +print_r(unpack("S", pack("S", 65537))); +print_r(unpack("S", pack("S", 0))); +print_r(unpack("S", pack("S", -1000))); +print_r(unpack("S", pack("S", -64434))); +print_r(unpack("S", pack("S", -65535))); + +print_r(unpack("V", pack("V", 65534))); +print_r(unpack("V", pack("V", 0))); +print_r(unpack("V", pack("V", 2147483650))); +print_r(unpack("V", pack("V", 4294967296))); +print_r(unpack("V", pack("V", -2147483648))); + +print_r(unpack("a", pack("a", "hello world"))); +print_r(unpack("a*", pack("a*", "hello world"))); + +print_r(unpack("c", pack("c", -127))); +print_r(unpack("c", pack("c", 127))); +print_r(unpack("c", pack("c", 255))); +print_r(unpack("c", pack("c", -129))); + +print_r(unpack("h", pack("h", 3000000))); + +print_r(unpack("i", pack("i", 65534))); +print_r(unpack("i", pack("i", 0))); +print_r(unpack("i", pack("i", -1000))); +print_r(unpack("i", pack("i", -64434))); +print_r(unpack("i", pack("i", -65535))); +print_r(unpack("i", pack("i", -2147483647))); + +print_r(unpack("l", pack("l", 65534))); +print_r(unpack("l", pack("l", 0))); +print_r(unpack("l", pack("l", 2147483650))); +print_r(unpack("l", pack("l", 4294967296))); +print_r(unpack("l", pack("l", -2147483648))); + +print_r(unpack("n", pack("n", 65534))); +print_r(unpack("n", pack("n", 65537))); +print_r(unpack("n", pack("n", 0))); +print_r(unpack("n", pack("n", -1000))); +print_r(unpack("n", pack("n", -64434))); +print_r(unpack("n", pack("n", -65535))); + +print_r(unpack("s", pack("s", 32767))); +print_r(unpack("s", pack("s", 65535))); +print_r(unpack("s", pack("s", 0))); +print_r(unpack("s", pack("s", -1000))); +print_r(unpack("s", pack("s", -64434))); +print_r(unpack("s", pack("s", -65535))); + +print_r(unpack("v", pack("v", 65534))); +print_r(unpack("v", pack("v", 65537))); +print_r(unpack("v", pack("v", 0))); +print_r(unpack("v", pack("v", -1000))); +print_r(unpack("v", pack("v", -64434))); +print_r(unpack("v", pack("v", -65535))); +?> +--EXPECT-- +Array +( + [1] => h +) +Array +( + [1] => hello world +) +"hello " +Array +( + [1] => 129 +) +Array +( + [1] => 127 +) +Array +( + [1] => 255 +) +Array +( + [1] => 127 +) +Array +( + [1] => 4 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -1000 +) +Array +( + [1] => -64434 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483648 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483646 +) +Array +( + [1] => -1 +) +Array +( + [1] => -2147483648 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483646 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483648 +) +Array +( + [1] => -30000 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 1 +) +Array +( + [1] => 0 +) +Array +( + [1] => 64536 +) +Array +( + [1] => 1102 +) +Array +( + [1] => 1 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483646 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483648 +) +Array +( + [1] => h +) +Array +( + [1] => hello world +) +Array +( + [1] => -127 +) +Array +( + [1] => 127 +) +Array +( + [1] => -1 +) +Array +( + [1] => 127 +) +Array +( + [1] => 3 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -1000 +) +Array +( + [1] => -64434 +) +Array +( + [1] => -65535 +) +Array +( + [1] => -2147483647 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483646 +) +Array +( + [1] => 0 +) +Array +( + [1] => -2147483648 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 1 +) +Array +( + [1] => 0 +) +Array +( + [1] => 64536 +) +Array +( + [1] => 1102 +) +Array +( + [1] => 1 +) +Array +( + [1] => 32767 +) +Array +( + [1] => -1 +) +Array +( + [1] => 0 +) +Array +( + [1] => -1000 +) +Array +( + [1] => 1102 +) +Array +( + [1] => 1 +) +Array +( + [1] => 65534 +) +Array +( + [1] => 1 +) +Array +( + [1] => 0 +) +Array +( + [1] => 64536 +) +Array +( + [1] => 1102 +) +Array +( + [1] => 1 +) diff --git a/ext/standard/tests/strings/pathinfo.phpt b/ext/standard/tests/strings/pathinfo.phpt index c1d58f05b..d9c3a2ed6 100644 --- a/ext/standard/tests/strings/pathinfo.phpt +++ b/ext/standard/tests/strings/pathinfo.phpt @@ -57,7 +57,7 @@ array(4) { } array(3) { ["dirname"]=> - string(1) "/" + string(1) "%e" ["basename"]=> string(0) "" ["filename"]=> @@ -75,7 +75,7 @@ array(4) { } array(4) { ["dirname"]=> - string(1) "/" + string(1) "%e" ["basename"]=> string(1) "." ["extension"]=> @@ -96,13 +96,13 @@ array(4) { string(12) "pathinfo.php" string(8) "pathinfo" string(3) "php" -string(%d) "%s/strings" -string(%d) "%s/strings" +string(%d) "%s%estrings" +string(%d) "%s%estrings" string(12) "pathinfo.php" string(3) "php" string(12) "pathinfo.php" -string(%d) "%s/strings" +string(%d) "%s%estrings" string(12) "pathinfo.php" -string(%d) "%s/strings" -string(%d) "%s/strings" +string(%d) "%s%estrings" +string(%d) "%s%estrings" Done diff --git a/ext/standard/tests/strings/php_strip_whitespace.phpt b/ext/standard/tests/strings/php_strip_whitespace.phpt new file mode 100644 index 000000000..4f7ef909e --- /dev/null +++ b/ext/standard/tests/strings/php_strip_whitespace.phpt @@ -0,0 +1,52 @@ +--TEST-- +php_strip_whitespace() tests +--FILE-- +<?php + +$filename = dirname(__FILE__)."/php_strip_whitespace.dat"; + +var_dump(php_strip_whitespace()); +var_dump(php_strip_whitespace($filename)); + +$data = '/* test comment */'; +file_put_contents($filename, $data); +var_dump(php_strip_whitespace($filename)); + +$data = '<?php /* test comment */ ?>'; +file_put_contents($filename, $data); +var_dump(php_strip_whitespace($filename)); + +$data = '<?php +/* test class */ +class test { + + /* function foo () */ + + function foo () /* {{{ */ + { + + + echo $var; //does not exist + } + /* }}} */ + +} +?>'; + +file_put_contents($filename, $data); +var_dump(php_strip_whitespace($filename)); + +@unlink($filename); +echo "Done\n"; +?> +--EXPECTF-- +Warning: php_strip_whitespace() expects exactly 1 parameter, 0 given in %s on line %d +bool(false) + +Warning: php_strip_whitespace(%sphp_strip_whitespace.dat): failed to open stream: No such file or directory in %s on line %d +string(0) "" +string(18) "/* test comment */" +string(9) "<?php ?>" +string(55) "<?php + class test { function foo () { echo $var; } } ?>" +Done diff --git a/ext/standard/tests/strings/printf.phpt b/ext/standard/tests/strings/printf.phpt new file mode 100755 index 000000000..13a8ed071 --- /dev/null +++ b/ext/standard/tests/strings/printf.phpt @@ -0,0 +1,697 @@ +--TEST-- +Test printf() function (32bit) +--INI-- +precision=14 +--SKIPIF-- +<?php +if (PHP_INT_MAX > 2147483647) { + die("skip 32bit test only"); +} +?> +--FILE-- +<?php + +/* Various input arrays for different format types */ + +$float_variation = array( "%f", "%-f", "%+f", "%7.2f", "%-7.2f", "%07.2f", "%-07.2f", "%'#7.2f" ); +$float_numbers = array( 0, 1, -1, 0.32, -0.32, 3.4. -3.4, 2.54, -2.54, 1.2345678e99, -1.2345678e99 ); + +$int_variation = array( "%d", "%-d", "%+d", "%7.2d", "%-7.2d", "%07.2d", "%-07.2d", "%'#7.2d" ); +$int_numbers = array( 0, 1, -1, 2.7, -2.7, 23333333, -23333333, "1234" ); + +$char_variation = array( 'a', "a", 67, -67, 99 ); + +$string_variation = array( "%5s", "%-5s", "%05s", "%'#5s" ); +$strings = array( NULL, "abc", 'aaa' ); + +/* Checking warning messages */ + +/* Zero argument */ +echo "\n*** Output for zero argument ***\n"; +printf(); + +/* Number of arguments not matching as specified in format field */ +echo "\n*** Output for insufficient number of arguments ***\n"; +$string = "dingy%sflem%dwombat"; +$nbr = 5; +$name = "voudras"; +printf("%d $string %s", $nbr, $name); + + +/* Scalar argument */ +echo "\n*** Output for scalar argument ***\n"; +printf(3); + +/* NULL argument */ +echo "\n*** Output for NULL as argument ***\n"; +printf(NULL); + + +/* Float type variations */ + +$counter = 1; +echo "\n\n*** Output for float type ***\n"; +echo "\n Input Float numbers variation array is:\n"; +print_r($float_numbers); + +foreach( $float_variation as $float_var ) +{ + echo "\n\nFloat Iteration $counter"; + foreach( $float_numbers as $float_num ) + { + echo "\n"; + printf( $float_var, $float_num ); + } + $counter++; +} + + +/* Integer type variations */ + +$counter = 1; +echo "\n\n*** Output for integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_variation as $int_var ) +{ + echo "\n\nInteger Iteration $counter"; + foreach( $int_numbers as $int_num ) + { + echo "\n"; + printf( $int_var, $int_num ); + } + $counter++; +} + + +/* Binary type variations */ + +echo "\n\n*** Output for binary type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + + foreach( $int_numbers as $bin_num ) + { + echo "\n"; + printf( "%b", $bin_num ); + } + + +/* Chararter type variations */ +echo "\n\n*** Output for char type ***\n"; +echo "\n Input Characters variation array is:\n"; +print_r($char_variation); + +foreach( $char_variation as $char ) +{ + echo "\n"; + printf( "%c", $char ); +} + +/* Scientific type variations */ +echo "\n\n*** Output for scientific type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $num ) +{ + echo "\n"; + printf( "%e", $num ); +} + +/* Unsigned Integer type variation */ +echo "\n\n*** Output for unsigned integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $unsig_num ) +{ + echo "\n"; + printf( "%u", $unsig_num ); +} + +/* Octal type variations */ +echo "\n\n*** Output for octal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $octal_num ) +{ + echo "\n"; + printf( "%o", $octal_num ); +} + +/* Hexadecimal type variations */ +echo "\n\n*** Output for hexadecimal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $hexa_num ) +{ + echo "\n"; + printf( "%x", $hexa_num ); +} + +/* String type variations */ +echo "\n\n*** Output for string type ***\n"; +echo "\n Input Strings format variation array is:\n"; +print_r($string_variation); +echo "\n Input strings variation array is:\n"; +print_r($strings); + +foreach( $string_variation as $string_var ) +{ + foreach( $strings as $str ) + { + echo "\n"; + printf( $string_var, $str ); + } +} + + +/* variations of %g type */ +$format_g = array("%g", "%.0g", "%+g", "%-g", "%-1.2g", "%+1.2g", "%G", "%.0G", "%+G", "%-G", "%-1.2G", "%+1.2G"); + +echo "\n\n*** Output for '%g' type ***\n"; +echo "\n Input format variation array is:\n"; +print_r($format_g); + +foreach( $format_g as $formatg ) +{ + printf("\n$formatg",123456); + printf("\n$formatg",-123456); +} + + +/* Some more typical cases */ + +$tempnum = 12345; +$tempstring = "abcdefghjklmnpqrstuvwxyz"; + +echo"\n\n*** Output for '%%%.2f' as the format parameter ***\n"; +printf("%%%.2f",1.23456789e10); + +echo"\n\n*** Output for '%%' as the format parameter ***\n"; +printf("%%",1.23456789e10); + +echo"\n\n*** Output for precision value more than maximum ***\n"; +printf("%.988f",1.23456789e10); + +echo"\n\n*** Output for invalid width(-15) specifier ***\n"; +printf("%030.-15s", $tempstring); + +echo"\n\n*** Output for '%F' as the format parameter ***\n"; +printf("%F",1.23456789e10); + +echo"\n\n*** Output for '%X' as the format parameter ***\n"; +printf("%X",12); + +echo"\n\n*** Output with no format parameter ***\n"; +printf($tempnum); + +echo"\n\n*** Output for multiple format parameters ***\n"; +printf("%d %s %d\n", $tempnum, $tempstring, $tempnum); + +echo"\n\n*** Output for excess of mixed type arguments ***\n"; +printf("%s", $tempstring, $tempstring, $tempstring); + +echo"\n\n*** Output for string format parameter and integer type argument ***\n"; +printf("%s", $tempnum); + +echo"\n\n*** Output for integer format parameter and string type argument ***\n"; +printf("%d", $tempstring); + + +?> +--EXPECTF-- +*** Output for zero argument *** + +Warning: Wrong parameter count for printf() in %s on line %d + +*** Output for insufficient number of arguments *** + +Warning: printf(): Too few arguments in %s on line %d + +*** Output for scalar argument *** +3 +*** Output for NULL as argument *** + + +*** Output for float type *** + + Input Float numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 0.32 + [4] => -0.32 + [5] => 3.4-3.4 + [6] => 2.54 + [7] => -2.54 + [8] => 1.2345678E+99 + [9] => -1.2345678E+99 +) + + +Float Iteration 1 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567%d.000000 +-1234567%d.000000 + +Float Iteration 2 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567%d.000000 +-1234567%d.000000 + +Float Iteration 3 ++0.000000 ++1.000000 +-1.000000 ++0.320000 +-0.320000 ++3.400000 ++2.540000 +-2.540000 ++1234567%d.000000 +-1234567%d.000000 + +Float Iteration 4 + 0.00 + 1.00 + -1.00 + 0.32 + -0.32 + 3.40 + 2.54 + -2.54 +1234567%d.00 +-1234567%d.00 + +Float Iteration 5 +0.00 +1.00 +-1.00 +0.32 +-0.32 +3.40 +2.54 +-2.54 +1234567%d.00 +-1234567%d.00 + +Float Iteration 6 +0000.00 +0001.00 +-001.00 +0000.32 +-000.32 +0003.40 +0002.54 +-002.54 +1234567%d.00 +-1234567%d.00 + +Float Iteration 7 +0.00000 +1.00000 +-1.0000 +0.32000 +-0.3200 +3.40000 +2.54000 +-2.5400 +1234567%d.00 +-1234567%d.00 + +Float Iteration 8 +###0.00 +###1.00 +##-1.00 +###0.32 +##-0.32 +###3.40 +###2.54 +##-2.54 +1234567%d.00 +-1234567%d.00 + +*** Output for integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + + +Integer Iteration 1 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 2 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 3 ++0 ++1 +-1 ++2 +-2 ++23333333 +-23333333 ++1234 + +Integer Iteration 4 + 0 + 1 + -1 + 2 + -2 +23333333 +-23333333 + 1234 + +Integer Iteration 5 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 6 +0000000 +0000001 +-000001 +0000002 +-000002 +23333333 +-23333333 +0001234 + +Integer Iteration 7 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 8 +######0 +######1 +#####-1 +######2 +#####-2 +23333333 +-23333333 +###1234 + +*** Output for binary type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +11111111111111111111111111111111 +10 +11111111111111111111111111111110 +1011001000000100111010101 +11111110100110111111011000101011 +10011010010 + +*** Output for char type *** + + Input Characters variation array is: +Array +( + [0] => a + [1] => a + [2] => 67 + [3] => -67 + [4] => 99 +) + + + +C +½ +c + +*** Output for scientific type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0.000000e+0 +1.000000e+0 +-1.000000e+0 +2.700000e+0 +-2.700000e+0 +2.333333e+7 +-2.333333e+7 +1.234000e+3 + +*** Output for unsigned integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +4294967295 +2 +4294967294 +23333333 +4271633963 +1234 + +*** Output for octal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +37777777777 +2 +37777777776 +131004725 +37646773053 +2322 + +*** Output for hexadecimal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +ffffffff +2 +fffffffe +16409d5 +fe9bf62b +4d2 + +*** Output for string type *** + + Input Strings format variation array is: +Array +( + [0] => %5s + [1] => %-5s + [2] => %05s + [3] => %'#5s +) + + Input strings variation array is: +Array +( + [0] => + [1] => abc + [2] => aaa +) + + + abc + aaa + +abc +aaa +00000 +00abc +00aaa +##### +##abc +##aaa + +*** Output for '%g' type *** + + Input format variation array is: +Array +( + [0] => %g + [1] => %.0g + [2] => %+g + [3] => %-g + [4] => %-1.2g + [5] => %+1.2g + [6] => %G + [7] => %.0G + [8] => %+G + [9] => %-G + [10] => %-1.2G + [11] => %+1.2G +) + +123456 +-123456 +1.0e+5 +-1.0e+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 +123456 +-123456 +1.0E+5 +-1.0E+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 + +*** Output for '%%%.2f' as the format parameter *** +%12345678900.00 + +*** Output for '%%' as the format parameter *** +% + +*** Output for precision value more than maximum *** +12345678900.0000000000000000000000000000000000000000 + +*** Output for invalid width(-15) specifier *** +15s + +*** Output for '%F' as the format parameter *** +12345678900.000000 + +*** Output for '%X' as the format parameter *** +C + +*** Output with no format parameter *** +12345 + +*** Output for multiple format parameters *** +12345 abcdefghjklmnpqrstuvwxyz 12345 + + +*** Output for excess of mixed type arguments *** +abcdefghjklmnpqrstuvwxyz + +*** Output for string format parameter and integer type argument *** +12345 + +*** Output for integer format parameter and string type argument *** +0 diff --git a/ext/standard/tests/strings/printf_64bit.phpt b/ext/standard/tests/strings/printf_64bit.phpt new file mode 100755 index 000000000..01ba34182 --- /dev/null +++ b/ext/standard/tests/strings/printf_64bit.phpt @@ -0,0 +1,695 @@ +--TEST-- +Test printf() function (64bit) +--SKIPIF-- +<?php +if (!(PHP_INT_MAX > 2147483647)) { + die("skip 64bit test only"); +} +?> +--FILE-- +<?php + +/* Various input arrays for different format types */ + +$float_variation = array( "%f", "%-f", "%+f", "%7.2f", "%-7.2f", "%07.2f", "%-07.2f", "%'#7.2f" ); +$float_numbers = array( 0, 1, -1, 0.32, -0.32, 3.4. -3.4, 2.54, -2.54, 1.2345678e99, -1.2345678e99 ); + +$int_variation = array( "%d", "%-d", "%+d", "%7.2d", "%-7.2d", "%07.2d", "%-07.2d", "%'#7.2d" ); +$int_numbers = array( 0, 1, -1, 2.7, -2.7, 23333333, -23333333, "1234" ); + +$char_variation = array( 'a', "a", 67, -67, 99 ); + +$string_variation = array( "%5s", "%-5s", "%05s", "%'#5s" ); +$strings = array( NULL, "abc", 'aaa' ); + +/* Checking warning messages */ + +/* Zero argument */ +echo "\n*** Output for zero argument ***\n"; +printf(); + +/* Number of arguments not matching as specified in format field */ +echo "\n*** Output for insufficient number of arguments ***\n"; +$string = "dingy%sflem%dwombat"; +$nbr = 5; +$name = "voudras"; +printf("%d $string %s", $nbr, $name); + + +/* Scalar argument */ +echo "\n*** Output for scalar argument ***\n"; +printf(3); + +/* NULL argument */ +echo "\n*** Output for NULL as argument ***\n"; +printf(NULL); + + +/* Float type variations */ + +$counter = 1; +echo "\n\n*** Output for float type ***\n"; +echo "\n Input Float numbers variation array is:\n"; +print_r($float_numbers); + +foreach( $float_variation as $float_var ) +{ + echo "\n\nFloat Iteration $counter"; + foreach( $float_numbers as $float_num ) + { + echo "\n"; + printf( $float_var, $float_num ); + } + $counter++; +} + + +/* Integer type variations */ + +$counter = 1; +echo "\n\n*** Output for integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_variation as $int_var ) +{ + echo "\n\nInteger Iteration $counter"; + foreach( $int_numbers as $int_num ) + { + echo "\n"; + printf( $int_var, $int_num ); + } + $counter++; +} + + +/* Binary type variations */ + +echo "\n\n*** Output for binary type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + + foreach( $int_numbers as $bin_num ) + { + echo "\n"; + printf( "%b", $bin_num ); + } + + +/* Chararter type variations */ +echo "\n\n*** Output for char type ***\n"; +echo "\n Input Characters variation array is:\n"; +print_r($char_variation); + +foreach( $char_variation as $char ) +{ + echo "\n"; + printf( "%c", $char ); +} + +/* Scientific type variations */ +echo "\n\n*** Output for scientific type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $num ) +{ + echo "\n"; + printf( "%e", $num ); +} + +/* Unsigned Integer type variation */ +echo "\n\n*** Output for unsigned integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $unsig_num ) +{ + echo "\n"; + printf( "%u", $unsig_num ); +} + +/* Octal type variations */ +echo "\n\n*** Output for octal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $octal_num ) +{ + echo "\n"; + printf( "%o", $octal_num ); +} + +/* Hexadecimal type variations */ +echo "\n\n*** Output for hexadecimal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $hexa_num ) +{ + echo "\n"; + printf( "%x", $hexa_num ); +} + +/* String type variations */ +echo "\n\n*** Output for string type ***\n"; +echo "\n Input Strings format variation array is:\n"; +print_r($string_variation); +echo "\n Input strings variation array is:\n"; +print_r($strings); + +foreach( $string_variation as $string_var ) +{ + foreach( $strings as $str ) + { + echo "\n"; + printf( $string_var, $str ); + } +} + + +/* variations of %g type */ +$format_g = array("%g", "%.0g", "%+g", "%-g", "%-1.2g", "%+1.2g", "%G", "%.0G", "%+G", "%-G", "%-1.2G", "%+1.2G"); + +echo "\n\n*** Output for '%g' type ***\n"; +echo "\n Input format variation array is:\n"; +print_r($format_g); + +foreach( $format_g as $formatg ) +{ + printf("\n$formatg",123456); + printf("\n$formatg",-123456); +} + + +/* Some more typical cases */ + +$tempnum = 12345; +$tempstring = "abcdefghjklmnpqrstuvwxyz"; + +echo"\n\n*** Output for '%%%.2f' as the format parameter ***\n"; +printf("%%%.2f",1.23456789e10); + +echo"\n\n*** Output for '%%' as the format parameter ***\n"; +printf("%%",1.23456789e10); + +echo"\n\n*** Output for precision value more than maximum ***\n"; +printf("%.988f",1.23456789e10); + +echo"\n\n*** Output for invalid width(-15) specifier ***\n"; +printf("%030.-15s", $tempstring); + +echo"\n\n*** Output for '%F' as the format parameter ***\n"; +printf("%F",1.23456789e10); + +echo"\n\n*** Output for '%X' as the format parameter ***\n"; +printf("%X",12); + +echo"\n\n*** Output with no format parameter ***\n"; +printf($tempnum); + +echo"\n\n*** Output for multiple format parameters ***\n"; +printf("%d %s %d\n", $tempnum, $tempstring, $tempnum); + +echo"\n\n*** Output for excess of mixed type arguments ***\n"; +printf("%s", $tempstring, $tempstring, $tempstring); + +echo"\n\n*** Output for string format parameter and integer type argument ***\n"; +printf("%s", $tempnum); + +echo"\n\n*** Output for integer format parameter and string type argument ***\n"; +printf("%d", $tempstring); + + +?> +--EXPECTF-- +*** Output for zero argument *** + +Warning: Wrong parameter count for printf() in %s on line %d + +*** Output for insufficient number of arguments *** + +Warning: printf(): Too few arguments in %s on line %d + +*** Output for scalar argument *** +3 +*** Output for NULL as argument *** + + +*** Output for float type *** + + Input Float numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 0.32 + [4] => -0.32 + [5] => 3.4-3.4 + [6] => 2.54 + [7] => -2.54 + [8] => 1.2345678E+99 + [9] => -1.2345678E+99 +) + + +Float Iteration 1 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 2 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 3 ++0.000000 ++1.000000 +-1.000000 ++0.320000 +-0.320000 ++3.400000 ++2.540000 +-2.540000 ++1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 4 + 0.00 + 1.00 + -1.00 + 0.32 + -0.32 + 3.40 + 2.54 + -2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 5 +0.00 +1.00 +-1.00 +0.32 +-0.32 +3.40 +2.54 +-2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 6 +0000.00 +0001.00 +-001.00 +0000.32 +-000.32 +0003.40 +0002.54 +-002.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 7 +0.00000 +1.00000 +-1.0000 +0.32000 +-0.3200 +3.40000 +2.54000 +-2.5400 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 8 +###0.00 +###1.00 +##-1.00 +###0.32 +##-0.32 +###3.40 +###2.54 +##-2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +*** Output for integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + + +Integer Iteration 1 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 2 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 3 ++0 ++1 +-1 ++2 +-2 ++23333333 +-23333333 ++1234 + +Integer Iteration 4 + 0 + 1 + -1 + 2 + -2 +23333333 +-23333333 + 1234 + +Integer Iteration 5 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 6 +0000000 +0000001 +-000001 +0000002 +-000002 +23333333 +-23333333 +0001234 + +Integer Iteration 7 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 8 +######0 +######1 +#####-1 +######2 +#####-2 +23333333 +-23333333 +###1234 + +*** Output for binary type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +1111111111111111111111111111111111111111111111111111111111111111 +10 +1111111111111111111111111111111111111111111111111111111111111110 +1011001000000100111010101 +1111111111111111111111111111111111111110100110111111011000101011 +10011010010 + +*** Output for char type *** + + Input Characters variation array is: +Array +( + [0] => a + [1] => a + [2] => 67 + [3] => -67 + [4] => 99 +) + + + +C +½ +c + +*** Output for scientific type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0.000000e+0 +1.000000e+0 +-1.000000e+0 +2.700000e+0 +-2.700000e+0 +2.333333e+7 +-2.333333e+7 +1.234000e+3 + +*** Output for unsigned integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +4294967295 +2 +4294967294 +23333333 +4271633963 +1234 + +*** Output for octal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +1777777777777777777777 +2 +1777777777777777777776 +131004725 +1777777777777646773053 +2322 + +*** Output for hexadecimal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +ffffffffffffffff +2 +fffffffffffffffe +16409d5 +fffffffffe9bf62b +4d2 + +*** Output for string type *** + + Input Strings format variation array is: +Array +( + [0] => %5s + [1] => %-5s + [2] => %05s + [3] => %'#5s +) + + Input strings variation array is: +Array +( + [0] => + [1] => abc + [2] => aaa +) + + + abc + aaa + +abc +aaa +00000 +00abc +00aaa +##### +##abc +##aaa + +*** Output for '%g' type *** + + Input format variation array is: +Array +( + [0] => %g + [1] => %.0g + [2] => %+g + [3] => %-g + [4] => %-1.2g + [5] => %+1.2g + [6] => %G + [7] => %.0G + [8] => %+G + [9] => %-G + [10] => %-1.2G + [11] => %+1.2G +) + +123456 +-123456 +1.0e+5 +-1.0e+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 +123456 +-123456 +1.0E+5 +-1.0E+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 + +*** Output for '%%%.2f' as the format parameter *** +%12345678900.00 + +*** Output for '%%' as the format parameter *** +% + +*** Output for precision value more than maximum *** +12345678900.0000000000000000000000000000000000000000 + +*** Output for invalid width(-15) specifier *** +15s + +*** Output for '%F' as the format parameter *** +12345678900.000000 + +*** Output for '%X' as the format parameter *** +C + +*** Output with no format parameter *** +12345 + +*** Output for multiple format parameters *** +12345 abcdefghjklmnpqrstuvwxyz 12345 + + +*** Output for excess of mixed type arguments *** +abcdefghjklmnpqrstuvwxyz + +*** Output for string format parameter and integer type argument *** +12345 + +*** Output for integer format parameter and string type argument *** +0 diff --git a/ext/standard/tests/strings/rtrim.phpt b/ext/standard/tests/strings/rtrim.phpt Binary files differnew file mode 100644 index 000000000..329ead420 --- /dev/null +++ b/ext/standard/tests/strings/rtrim.phpt diff --git a/ext/standard/tests/strings/sha1.phpt b/ext/standard/tests/strings/sha1.phpt index c405eedde..ed8f47457 100644 --- a/ext/standard/tests/strings/sha1.phpt +++ b/ext/standard/tests/strings/sha1.phpt @@ -2,13 +2,50 @@ sha1() with ASCII output --FILE-- <?php -echo sha1("abc")."\n"; -echo sha1("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")."\n"; -echo sha1("a")."\n"; -echo sha1("0123456701234567012345670123456701234567012345670123456701234567")."\n"; + +$filename = dirname(__FILE__)."/sha1.dat"; +$a = array( + "abc", + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + "a", + "0123456701234567012345670123456701234567012345670123456701234567", + "" +); + +foreach ($a as $str) { + var_dump($val1 = sha1($str)); + file_put_contents($filename, $str); + var_dump($val2 = sha1_file($filename)); + var_dump($val1 === $val2); +} + +var_dump(sha1($str, true)); +var_dump(sha1_file($filename, true)); + +@unlink($filename); + +sha1_file($filename); + +echo "Done\n"; ?> ---EXPECT-- -a9993e364706816aba3e25717850c26c9cd0d89d -84983e441c3bd26ebaae4aa1f95129e5e54670f1 -86f7e437faa5a7fce15d1ddcb9eaeaea377667b8 -e0c094e867ef46c350ef54a7f59dd60bed92ae83 +--EXPECTF-- +string(40) "a9993e364706816aba3e25717850c26c9cd0d89d" +string(40) "a9993e364706816aba3e25717850c26c9cd0d89d" +bool(true) +string(40) "84983e441c3bd26ebaae4aa1f95129e5e54670f1" +string(40) "84983e441c3bd26ebaae4aa1f95129e5e54670f1" +bool(true) +string(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8" +string(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8" +bool(true) +string(40) "e0c094e867ef46c350ef54a7f59dd60bed92ae83" +string(40) "e0c094e867ef46c350ef54a7f59dd60bed92ae83" +bool(true) +string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709" +string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709" +bool(true) +string(20) "%s" +string(20) "%s" + +Warning: sha1_file(%ssha1.dat): failed to open stream: No such file or directory in %s on line %d +Done diff --git a/ext/standard/tests/strings/soundex.phpt b/ext/standard/tests/strings/soundex.phpt new file mode 100644 index 000000000..55769ad57 --- /dev/null +++ b/ext/standard/tests/strings/soundex.phpt @@ -0,0 +1,55 @@ +--TEST-- +soundex() tests +--FILE-- +<?php + +var_dump(soundex("")); +var_dump(soundex(-1)); +var_dump(soundex(array())); + +$array = array( +"From", +"that", +"time", +"on", +"Sam", +"thought", +"that", +"he", +"sensed", +"a", +"change", +"in", +"Gollum", +"again.", +"He was more fawning and would-be friendly; but Sam surprised some strange looks in his eyes at times, especially towards Frodo." +); + +foreach ($array as $str) { + var_dump(soundex($str)); +} + +echo "Done\n"; +?> +--EXPECTF-- +bool(false) +string(4) "0000" + +Warning: soundex() expects parameter 1 to be string, array given in %s on line %d +NULL +string(4) "F650" +string(4) "T300" +string(4) "T500" +string(4) "O500" +string(4) "S500" +string(4) "T230" +string(4) "T300" +string(4) "H000" +string(4) "S523" +string(4) "A000" +string(4) "C520" +string(4) "I500" +string(4) "G450" +string(4) "A250" +string(4) "H256" +Done diff --git a/ext/standard/tests/strings/sprintf_f.phpt b/ext/standard/tests/strings/sprintf_f.phpt index 6135270d2..6cba6d10b 100755 --- a/ext/standard/tests/strings/sprintf_f.phpt +++ b/ext/standard/tests/strings/sprintf_f.phpt @@ -37,4 +37,4 @@ string(7) "-5.60 " string(7) "-005.60" string(7) "-5.6000" -string(105) "12345678%d00000000000000000000000000000000000000000000000000.0000"
\ No newline at end of file +string(105) "1234567%d.0000" diff --git a/ext/standard/tests/strings/sprintf_f_2.phpt b/ext/standard/tests/strings/sprintf_f_2.phpt new file mode 100755 index 000000000..d6006356f --- /dev/null +++ b/ext/standard/tests/strings/sprintf_f_2.phpt @@ -0,0 +1,114 @@ +--TEST-- +sprintf %f #2 +--FILE-- +<?php +var_dump(sprintf("%.3F", 100.426)); +var_dump(sprintf("%.2F", 100.426)); +var_dump(sprintf("%d", 100.426)); +var_dump(sprintf("%d", 100.9)); +var_dump(sprintf("%o", 100.426)); +var_dump(sprintf("%o", 100.9)); + +/* copy & paste from the docs */ + +/* example#1: Argument swapping */ +$num = 100.1; +$location = "world"; + +$format = 'There are %d monkeys in the %s'; +var_dump(sprintf($format, $num, $location)); + +/* example#2: Argument swapping */ +$format = 'The %s contains %d monkeys'; +var_dump(sprintf($format, $num, $location)); + +/* example#3: Argument swapping */ +$format = 'The %2$s contains %1$d monkeys'; +var_dump(sprintf($format, $num, $location)); + +/* example#4: Argument swapping */ +$format = 'The %2$s contains %1$d monkeys. + That\'s a nice %2$s full of %1$d monkeys.'; +var_dump(sprintf($format, $num, $location)); + +/* example#5: various examples */ +$n = 43951789; +$u = -43951789; +$c = 65; // ASCII 65 is 'A' + +// notice the double %%, this prints a literal '%' character +var_dump(sprintf("%%b = '%b'", $n)); // binary representation +var_dump(sprintf("%%c = '%c'", $c)); // print the ascii character, same as chr() function +var_dump(sprintf("%%d = '%d'", $n)); // standard integer representation +var_dump(sprintf("%%e = '%e'", $n)); // scientific notation +var_dump(sprintf("%%u = '%u'", $n)); // unsigned integer representation of a positive integer +var_dump(sprintf("%%u = '%u'", $u)); // unsigned integer representation of a negative integer +var_dump(sprintf("%%f = '%f'", $n)); // floating point representation +var_dump(sprintf("%%o = '%o'", $n)); // octal representation +var_dump(sprintf("%%s = '%s'", $n)); // string representation +var_dump(sprintf("%%x = '%x'", $n)); // hexadecimal representation (lower-case) +var_dump(sprintf("%%X = '%X'", $n)); // hexadecimal representation (upper-case) + +var_dump(sprintf("%%+d = '%+d'", $n)); // sign specifier on a positive integer +var_dump(sprintf("%%+d = '%+d'", $u)); // sign specifier on a negative integer + + +/* example#6: string specifiers */ +$s = 'monkey'; +$t = 'many monkeys'; + +var_dump(sprintf("[%s]", $s)); // standard string output +var_dump(sprintf("[%10s]", $s)); // right-justification with spaces +var_dump(sprintf("[%-10s]", $s)); // left-justification with spaces +var_dump(sprintf("[%010s]", $s)); // zero-padding works on strings too +var_dump(sprintf("[%'#10s]", $s)); // use the custom padding character '#' +var_dump(sprintf("[%10.10s]", $t)); // left-justification but with a cutoff of 10 characters + +/* example#7: zero-padded integers */ +var_dump(sprintf("%04d-%02d-%02d", 2006, 12, 18)); + +/* example#8: formatting currency */ +$money1 = 68.75; +$money2 = 54.35; +$money = $money1 + $money2; +var_dump(sprintf("%01.2f", $money)); // output "123.10" + +/* example#9: scientific notation */ +$number = 362525200; + +var_dump(sprintf("%.3e", $number)); // outputs 3.63e+8 +?> +--EXPECT-- +string(7) "100.426" +string(6) "100.43" +string(3) "100" +string(3) "100" +string(3) "144" +string(3) "144" +string(34) "There are 100 monkeys in the world" +string(28) "The 100.1 contains 0 monkeys" +string(30) "The world contains 100 monkeys" +string(76) "The world contains 100 monkeys. + That's a nice world full of 100 monkeys." +string(33) "%b = '10100111101010011010101101'" +string(8) "%c = 'A'" +string(15) "%d = '43951789'" +string(18) "%e = '4.395179e+7'" +string(15) "%u = '43951789'" +string(17) "%u = '4251015507'" +string(22) "%f = '43951789.000000'" +string(16) "%o = '247523255'" +string(15) "%s = '43951789'" +string(14) "%x = '29ea6ad'" +string(14) "%X = '29EA6AD'" +string(17) "%+d = '+43951789'" +string(17) "%+d = '-43951789'" +string(8) "[monkey]" +string(12) "[ monkey]" +string(12) "[monkey ]" +string(12) "[0000monkey]" +string(12) "[####monkey]" +string(12) "[many monke]" +string(10) "2006-12-18" +string(6) "123.10" +string(8) "3.625e+8" diff --git a/ext/standard/tests/strings/sprintf_f_3.phpt b/ext/standard/tests/strings/sprintf_f_3.phpt new file mode 100755 index 000000000..0cf123998 --- /dev/null +++ b/ext/standard/tests/strings/sprintf_f_3.phpt @@ -0,0 +1,23 @@ +--TEST-- +sprintf %f #3 +--SKIPIF-- +<?php if(false == setlocale(LC_NUMERIC, "is_IS", "is_IS.UTF-8")) print "skip icelandic locale not supported"; ?> +--FILE-- +<?php +setlocale(LC_NUMERIC, "is_IS", "is_IS.UTF-8"); +var_dump(sprintf("%.3f", 100.426)); +var_dump(sprintf("%.2f", 100.426)); +var_dump(sprintf("%f'", 100.426)); + +$money1 = 68.75; +$money2 = 54.35; +$money = $money1 + $money2; +var_dump(sprintf("%01.2f", $money)); +var_dump(sprintf("%.3e", $money)); +?> +--EXPECT-- +string(7) "100,426" +string(6) "100,43" +string(11) "100,426000'" +string(6) "123,10" +string(8) "1.231e+2" diff --git a/ext/standard/tests/strings/str_ireplace.phpt b/ext/standard/tests/strings/str_ireplace.phpt new file mode 100644 index 000000000..4d4fee8f9 --- /dev/null +++ b/ext/standard/tests/strings/str_ireplace.phpt @@ -0,0 +1,101 @@ +--TEST-- +str_ireplace() tests +--FILE-- +<?php + +var_dump(str_ireplace()); +var_dump(str_ireplace("")); +var_dump(str_ireplace("", "")); +var_dump(str_ireplace("", "", "")); + +var_dump(str_ireplace("tt", "a", "ttttTttttttttTT")); +var_dump(str_ireplace("tt", "a", "ttttTttttttttTT", $count)); +var_dump($count); + +var_dump(str_ireplace("tt", "aa", "ttttTttttttttTT")); +var_dump(str_ireplace("tt", "aa", "ttttTttttttttTT", $count)); +var_dump($count); + +var_dump(str_ireplace("tt", "aaa", "ttttTttttttttTT")); +var_dump(str_ireplace("tt", "aaa", "ttttTttttttttTT", $count)); +var_dump($count); + +var_dump(str_ireplace("tt", "aaa", "ttttTttttttttTT")); +var_dump(str_ireplace("tt", "aaa", "ttttTttttttttTT", $count)); +var_dump($count); + +var_dump(str_ireplace(array("tt", "tt"), "aaa", "ttttTttttttttTT")); +var_dump(str_ireplace(array("tt", "tt"), array("aaa"), "ttttTttttttttTT")); +var_dump(str_ireplace(array("tt", "y"), array("aaa", "bbb"), "ttttTttttttttTT")); + +var_dump(str_ireplace(array("tt", "tt"), "aaa", "ttttTttttttttTT")); +var_dump(str_ireplace(array("tt", "tt"), array("aaa"), "ttttTttttttttTT")); +var_dump(str_ireplace(array("tt", "y"), array("aaa", "bbb"), "ttttTttttttttTT")); + +var_dump(str_ireplace(array("tt", "y"), array("aaa", "bbb"), array("ttttTttttttttTT", "aayyaayasdayYahsdYYY"))); +var_dump(str_ireplace(array("tt", "y"), array("aaa", "bbb"), array("key"=>"ttttTttttttttTT", "test"=>"aayyaayasdayYahsdYYY"))); +var_dump(str_ireplace(array("t"=>"tt", "y"=>"y"), array("a"=>"aaa", "b"=>"bbb"), array("key"=>"ttttTttttttttTT", "test"=>"aayyaayasdayYahsdYYY"))); + +/* separate testcase for str_ireplace() off-by-one */ + +$Data = "Change tracking and management software designed to watch + for abnormal system behavior.\nSuggest features, report bugs, or ask + questions here."; +var_dump($Data = str_ireplace("\r\n", "<br>", $Data)); +var_dump($Data = str_ireplace("\n", "<br>", $Data)); + + +echo "Done\n"; +?> +--EXPECTF-- +Warning: Wrong parameter count for str_ireplace() in %s on line %d +NULL + +Warning: Wrong parameter count for str_ireplace() in %s on line %d +NULL + +Warning: Wrong parameter count for str_ireplace() in %s on line %d +NULL +string(0) "" +string(8) "aaaaaaaT" +string(8) "aaaaaaaT" +int(7) +string(15) "aaaaaaaaaaaaaaT" +string(15) "aaaaaaaaaaaaaaT" +int(7) +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +int(7) +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +int(7) +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +string(22) "aaaaaaaaaaaaaaaaaaaaaT" +array(2) { + [0]=> + string(22) "aaaaaaaaaaaaaaaaaaaaaT" + [1]=> + string(36) "aabbbbbbaabbbasdabbbbbbahsdbbbbbbbbb" +} +array(2) { + ["key"]=> + string(22) "aaaaaaaaaaaaaaaaaaaaaT" + ["test"]=> + string(36) "aabbbbbbaabbbasdabbbbbbahsdbbbbbbbbb" +} +array(2) { + ["key"]=> + string(22) "aaaaaaaaaaaaaaaaaaaaaT" + ["test"]=> + string(36) "aabbbbbbaabbbasdabbbbbbahsdbbbbbbbbb" +} +string(143) "Change tracking and management software designed to watch + for abnormal system behavior. +Suggest features, report bugs, or ask + questions here." +string(152) "Change tracking and management software designed to watch<br> for abnormal system behavior.<br>Suggest features, report bugs, or ask<br> questions here." +Done diff --git a/ext/standard/tests/strings/str_pad.phpt b/ext/standard/tests/strings/str_pad.phpt Binary files differnew file mode 100644 index 000000000..d6111b034 --- /dev/null +++ b/ext/standard/tests/strings/str_pad.phpt diff --git a/ext/standard/tests/strings/strcasecmp.phpt b/ext/standard/tests/strings/strcasecmp.phpt Binary files differnew file mode 100644 index 000000000..ee9799864 --- /dev/null +++ b/ext/standard/tests/strings/strcasecmp.phpt diff --git a/ext/standard/tests/strings/strcmp.phpt b/ext/standard/tests/strings/strcmp.phpt Binary files differnew file mode 100644 index 000000000..b27da6c37 --- /dev/null +++ b/ext/standard/tests/strings/strcmp.phpt diff --git a/ext/standard/tests/strings/stristr.phpt b/ext/standard/tests/strings/stristr.phpt new file mode 100644 index 000000000..5c617a20d --- /dev/null +++ b/ext/standard/tests/strings/stristr.phpt @@ -0,0 +1,43 @@ +--TEST-- +stristr() function +--FILE-- +<?php + var_dump(stristr()); + var_dump(stristr(array(), "")); + var_dump(stristr("", array())); + var_dump(stristr(array(), array())); + var_dump(stristr("tEsT sTrInG", "tEsT")); + var_dump(stristr("tEsT sTrInG", "stRiNg")); + var_dump(stristr("tEsT sTrInG", "stRiN")); + var_dump(stristr("tEsT sTrInG", "t S")); + var_dump(stristr("tEsT sTrInG", "g")); + var_dump(md5(stristr("te".chr(0)."st", chr(0)))); + var_dump(@stristr("", "")); + var_dump(@stristr("a", "")); + var_dump(@stristr("", "a")); + var_dump(md5(@stristr("\\\\a\\", "\\a"))); + var_dump(stristr("tEsT sTrInG", " ")); +?> +--EXPECTF-- +Warning: Wrong parameter count for stristr() in %s on line %d +NULL + +Notice: Array to string conversion in %s on line %d + +Warning: stristr(): Empty delimiter. in %s on line %d +bool(false) +bool(false) + +Notice: Array to string conversion in %s on line %d +bool(false) +string(11) "tEsT sTrInG" +string(6) "sTrInG" +string(6) "sTrInG" +string(8) "T sTrInG" +string(1) "G" +string(32) "7272696018bdeb2c9a3f8d01fc2a9273" +bool(false) +bool(false) +bool(false) +string(32) "6ec19f52f0766c463f3bb240f4396913" +string(7) " sTrInG" diff --git a/ext/standard/tests/strings/strlen.phpt b/ext/standard/tests/strings/strlen.phpt Binary files differnew file mode 100644 index 000000000..41529b39f --- /dev/null +++ b/ext/standard/tests/strings/strlen.phpt diff --git a/ext/standard/tests/strings/substr_compare.phpt b/ext/standard/tests/strings/substr_compare.phpt index 594aed173..66a82a878 100644 --- a/ext/standard/tests/strings/substr_compare.phpt +++ b/ext/standard/tests/strings/substr_compare.phpt @@ -24,7 +24,7 @@ int(0) int(1) int(-1) -Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d +Warning: substr_compare(): The length cannot exceed initial string length in %s on line %d bool(false) Warning: substr_compare() expects parameter 5 to be boolean, object given in %s on line %d diff --git a/ext/standard/tests/strings/ucfirst.phpt b/ext/standard/tests/strings/ucfirst.phpt Binary files differnew file mode 100644 index 000000000..eebc4cc9c --- /dev/null +++ b/ext/standard/tests/strings/ucfirst.phpt diff --git a/ext/standard/tests/strings/uuencode.phpt b/ext/standard/tests/strings/uuencode.phpt new file mode 100644 index 000000000..9c77a5072 --- /dev/null +++ b/ext/standard/tests/strings/uuencode.phpt @@ -0,0 +1,40 @@ +--TEST-- +uuencode family tests +--FILE-- +<?php + +var_dump(convert_uuencode(array())); +var_dump(convert_uudecode(array())); + +var_dump(convert_uuencode("")); +var_dump(convert_uudecode("")); +var_dump($enc = convert_uuencode("~!@#$%^&*()_}{POIUYTREWQQSDFGHJKL:<MNBVCXZ")); +var_dump(convert_uudecode("!@#$%^YUGFDFGHJKLUYTFBNMLOYT")); +var_dump(convert_uudecode($enc)); +var_dump($enc = convert_uuencode("not very sophisticated")); +var_dump(convert_uudecode($enc)); +var_dump(convert_uudecode(substr($enc, 0, -10))); + +echo "Done\n"; +?> +--EXPECTF-- +Warning: convert_uuencode() expects parameter 1 to be string, array given in %s on line %d +bool(false) + +Warning: convert_uudecode() expects parameter 1 to be string, array given in %s on line %d +bool(false) +bool(false) +bool(false) +string(60) "J?B%`(R0E7B8J*"E??7M03TE5651215=145-$1D=(2DM,.CQ-3D)60UA: +` +" +string(1) "%s" +string(42) "~!@#$%^&*()_}{POIUYTREWQQSDFGHJKL:<MNBVCXZ" +string(36) "6;F]T('9E<GD@<V]P:&ES=&EC871E9``` +` +" +string(22) "not very sophisticated" + +Warning: convert_uudecode(): The given parameter is not a valid uuencoded string. in %s on line %d +bool(false) +Done |
