diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/standard/tests/strings/strtok_basic.phpt | 63 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_error.phpt | 55 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation1.phpt | 172 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation2.phpt | 172 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation3.phpt | 150 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation4.phpt | 110 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation5.phpt | 150 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation6.phpt | 160 | ||||
-rw-r--r-- | ext/standard/tests/strings/strtok_variation7.phpt | 108 |
9 files changed, 1140 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/strtok_basic.phpt b/ext/standard/tests/strings/strtok_basic.phpt new file mode 100644 index 0000000000..6ba48f41e3 --- /dev/null +++ b/ext/standard/tests/strings/strtok_basic.phpt @@ -0,0 +1,63 @@ +--TEST-- +Test strtok() function : basic functionality +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : basic functionality +*/ + +echo "*** Testing strtok() : basic functionality ***\n"; + +// Initialize all required variables +$str = 'This testcase test strtok() function.'; +$token = ' ().'; + +echo "\nThe Input string is:\n\"$str\"\n"; +echo "\nThe token string is:\n\"$token\"\n"; + +// using strtok() with $str argument +echo "\n--- Token 1 ---\n"; +var_dump( strtok($str, $token) ); + +for( $i = 2; $i <=7; $i++ ) { + echo "\n--- Token $i ---\n"; + var_dump( strtok($token) ); +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : basic functionality *** + +The Input string is: +"This testcase test strtok() function." + +The token string is: +" ()." + +--- Token 1 --- +string(4) "This" + +--- Token 2 --- +string(8) "testcase" + +--- Token 3 --- +string(4) "test" + +--- Token 4 --- +string(6) "strtok" + +--- Token 5 --- +string(8) "function" + +--- Token 6 --- +bool(false) + +--- Token 7 --- +bool(false) +Done diff --git a/ext/standard/tests/strings/strtok_error.phpt b/ext/standard/tests/strings/strtok_error.phpt new file mode 100644 index 0000000000..d83085b0c6 --- /dev/null +++ b/ext/standard/tests/strings/strtok_error.phpt @@ -0,0 +1,55 @@ +--TEST-- +Test strtok() function : error conditions +--FILE-- +<?php +/* Prototype : string strtok ( string $str, string $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() for error conditions +*/ + +echo "*** Testing strtok() : error conditions ***\n"; + +// Zero argument +echo "\n-- Testing strtok() function with Zero arguments --\n"; +var_dump( strtok() ); + +// More than expected number of arguments +echo "\n-- Testing strtok() function with more than expected no. of arguments --\n"; +$str = 'sample string'; +$token = ' '; +$extra_arg = 10; + +var_dump( strtok($str, $token, $extra_arg) ); +var_dump( $str ); + +// Less than expected number of arguments +echo "\n-- Testing strtok() with less than expected no. of arguments --\n"; +$str = 'string val'; + +var_dump( strtok($str)); +var_dump( $str ); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : error conditions *** + +-- Testing strtok() function with Zero arguments -- + +Warning: Wrong parameter count for strtok() in %s on line %d +NULL + +-- Testing strtok() function with more than expected no. of arguments -- + +Warning: Wrong parameter count for strtok() in %s on line %d +NULL +string(13) "sample string" + +-- Testing strtok() with less than expected no. of arguments -- +bool(false) +string(10) "string val" +Done diff --git a/ext/standard/tests/strings/strtok_variation1.phpt b/ext/standard/tests/strings/strtok_variation1.phpt new file mode 100644 index 0000000000..5841d28580 --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation1.phpt @@ -0,0 +1,172 @@ +--TEST-- +Test strtok() function : usage variations - first argument as non-string +--FILE-- +<?php +/* Prototype : string strtok ( string $str, string $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with first argument as non-string +*/ + +echo "*** Testing strtok() : with first argument as non-string ***\n"; +// initialize all required variables +$token = '-'; + +// get an unset variable +$unset_var = 'string_val'; +unset($unset_var); + +// declaring a class +class sample { + public function __toString() { + return "obj-ect"; + } +} + +// Defining resource +$file_handle = fopen(__FILE__, 'r'); + +// array with different values +$values = array ( + + // integer values + 0, + 1, + 12345, + -2345, + + // float values + 10.5, + -10.5, + 10.5e10, + 10.6E-10, + .5, + + // array values + array(), + array(0), + array(1), + array(1, 2), + array('color' => 'red-color', 'item' => 'pen-color'), + + // boolean values + true, + false, + TRUE, + FALSE, + + // objects + new sample(), + + // empty string + "", + '', + + // null vlaues + NULL, + null, + + // undefined variable + $undefined_var, + + // unset variable + $unset_var, + + // resource + $file_handle +); + + +// loop through each element of the array and check the working of strtok() +// when $str arugment is supplied with different values + +echo "\n--- Testing strtok() by supplying different values for 'str' argument ---\n"; +$counter = 1; +for($index = 0; $index < count($values); $index ++) { + echo "-- Iteration $counter --\n"; + $str = $values [$index]; + + var_dump( strtok($str, $token) ); + + $counter ++; +} + +//closing the resource +fclose($file_handle); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with first argument as non-string *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d + +--- Testing strtok() by supplying different values for 'str' argument --- +-- Iteration 1 -- +string(1) "0" +-- Iteration 2 -- +string(1) "1" +-- Iteration 3 -- +string(5) "12345" +-- Iteration 4 -- +string(4) "2345" +-- Iteration 5 -- +string(4) "10.5" +-- Iteration 6 -- +string(4) "10.5" +-- Iteration 7 -- +string(12) "105000000000" +-- Iteration 8 -- +string(5) "1.06E" +-- Iteration 9 -- +string(3) "0.5" +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +string(5) "Array" +-- Iteration 15 -- +string(1) "1" +-- Iteration 16 -- +bool(false) +-- Iteration 17 -- +string(1) "1" +-- Iteration 18 -- +bool(false) +-- Iteration 19 -- +string(3) "obj" +-- Iteration 20 -- +bool(false) +-- Iteration 21 -- +bool(false) +-- Iteration 22 -- +bool(false) +-- Iteration 23 -- +bool(false) +-- Iteration 24 -- +bool(false) +-- Iteration 25 -- +bool(false) +-- Iteration 26 -- +string(14) "Resource id #%d" +Done diff --git a/ext/standard/tests/strings/strtok_variation2.phpt b/ext/standard/tests/strings/strtok_variation2.phpt new file mode 100644 index 0000000000..e08005ca7d --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation2.phpt @@ -0,0 +1,172 @@ +--TEST-- +Test strtok() function : usage variations - with different token strings +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with different token strings +*/ + +echo "*** Testing strtok() : with different token strings ***\n"; +// initialize all required variables +$str = 'this testcase test strtok() function '; + +// get an unset variable +$unset_var = 'string_val'; +unset($unset_var); + +// declaring a class +class sample { + public function __toString() { + return "obj-ect"; + } +} + +// Defining resource +$file_handle = fopen(__FILE__, 'r'); + +// array with different values +$values = array ( + + // integer values + 0, + 1, + 12345, + -2345, + + // float values + 10.5, + -10.5, + 10.5e10, + 10.6E-10, + .5, + + // array values + array(), + array(0), + array(1), + array(1, 2), + array('color' => 'red', 'item' => 'pen'), + + // boolean values + true, + false, + TRUE, + FALSE, + + // objects + new sample(), + + // empty string + "", + '', + + // null vlaues + NULL, + null, + + // undefined variable + $undefined_var, + + // unset variable + $unset_var, + + // resource + $file_handle +); + + +// loop through each element of the array and check the working of strtok() +// when $token arugment is supplied with different values + +echo "\n--- Testing strtok() by supplying different values for 'token' argument ---\n"; +$counter = 1; +for($index = 0; $index < count($values); $index ++) { + echo "-- Iteration $counter --\n"; + $token = $values [$index]; + + var_dump( strtok($str, $token) ); + + $counter ++; +} + +// closing the resource +fclose($file_handle); + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with different token strings *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d + +--- Testing strtok() by supplying different values for 'token' argument --- +-- Iteration 1 -- +string(37) "this testcase test strtok() function " +-- Iteration 2 -- +string(37) "this testcase test strtok() function " +-- Iteration 3 -- +string(37) "this testcase test strtok() function " +-- Iteration 4 -- +string(37) "this testcase test strtok() function " +-- Iteration 5 -- +string(37) "this testcase test strtok() function " +-- Iteration 6 -- +string(37) "this testcase test strtok() function " +-- Iteration 7 -- +string(37) "this testcase test strtok() function " +-- Iteration 8 -- +string(37) "this testcase test strtok() function " +-- Iteration 9 -- +string(37) "this testcase test strtok() function " +-- Iteration 10 -- + +Notice: Array to string conversion in %s on line %d +string(10) "this testc" +-- Iteration 11 -- + +Notice: Array to string conversion in %s on line %d +string(10) "this testc" +-- Iteration 12 -- + +Notice: Array to string conversion in %s on line %d +string(10) "this testc" +-- Iteration 13 -- + +Notice: Array to string conversion in %s on line %d +string(10) "this testc" +-- Iteration 14 -- + +Notice: Array to string conversion in %s on line %d +string(10) "this testc" +-- Iteration 15 -- +string(37) "this testcase test strtok() function " +-- Iteration 16 -- +string(37) "this testcase test strtok() function " +-- Iteration 17 -- +string(37) "this testcase test strtok() function " +-- Iteration 18 -- +string(37) "this testcase test strtok() function " +-- Iteration 19 -- +string(4) "his " +-- Iteration 20 -- +string(37) "this testcase test strtok() function " +-- Iteration 21 -- +string(37) "this testcase test strtok() function " +-- Iteration 22 -- +string(37) "this testcase test strtok() function " +-- Iteration 23 -- +string(37) "this testcase test strtok() function " +-- Iteration 24 -- +string(37) "this testcase test strtok() function " +-- Iteration 25 -- +string(37) "this testcase test strtok() function " +-- Iteration 26 -- +string(2) "th" +Done diff --git a/ext/standard/tests/strings/strtok_variation3.phpt b/ext/standard/tests/strings/strtok_variation3.phpt new file mode 100644 index 0000000000..3026d86a01 --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation3.phpt @@ -0,0 +1,150 @@ +--TEST-- +Test strtok() function : usage variations - with heredoc strings +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with heredoc strings +*/ + +echo "*** Testing strtok() : with heredoc strings ***\n"; + +// defining different heredoc strings +$empty_heredoc = <<<EOT +EOT; + +$heredoc_with_newline = <<<EOT +\n + +EOT; + +$heredoc_with_characters = <<<EOT +first line of heredoc string +second line of heredoc string +third line of heredocstring +EOT; + +$heredoc_with_newline_and_tabs = <<<EOT +hello\tworld\nhello\nworld\n +EOT; + +$heredoc_with_alphanumerics = <<<EOT +hello123world456 +1234hello\t1234 +EOT; + +$heredoc_with_embedded_nulls = <<<EOT +hello\0world\0hello +\0hello\0 +EOT; + +$heredoc_strings = array( + $empty_heredoc, + $heredoc_with_newline, + $heredoc_with_characters, + $heredoc_with_newline_and_tabs, + $heredoc_with_alphanumerics, + $heredoc_with_embedded_nulls + ); + +// loop through each element of the array and check the working of strtok() +// when supplied with different string values + +$count = 1; +foreach($heredoc_strings as $string) { + echo "\n--- Iteration $count ---\n"; + var_dump( strtok($string, "5o\0\n\t") ); + for($counter = 1; $counter <= 10; $counter++) { + var_dump( strtok("5o\0\n\t") ); + } + $count++; +} + + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with heredoc strings *** + +--- Iteration 1 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 2 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 3 --- +string(11) "first line " +string(7) "f hered" +string(8) "c string" +string(3) "sec" +string(8) "nd line " +string(7) "f hered" +string(8) "c string" +string(11) "third line " +string(7) "f hered" +string(7) "cstring" +bool(false) + +--- Iteration 4 --- +string(4) "hell" +string(1) "w" +string(3) "rld" +string(4) "hell" +string(1) "w" +string(3) "rld" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 5 --- +string(4) "hell" +string(4) "123w" +string(4) "rld4" +string(1) "6" +string(8) "1234hell" +string(4) "1234" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 6 --- +string(4) "hell" +string(1) "w" +string(3) "rld" +string(4) "hell" +string(4) "hell" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +Done diff --git a/ext/standard/tests/strings/strtok_variation4.phpt b/ext/standard/tests/strings/strtok_variation4.phpt new file mode 100644 index 0000000000..6f4fa6621b --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation4.phpt @@ -0,0 +1,110 @@ +--TEST-- +Test strtok() function : usage variations - with embedded nulls in the strings +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with embedded nulls in the strings +*/ + +echo "*** Testing strtok() : with embedded nulls in the strings ***\n"; + +// defining varous strings with embedded nulls +$strings_with_nulls = array( + "\0", + '\0', + "hello\0world", + "\0hel\0lo", + "hello\0", + "\0\0hello\tworld\0\0", + "\\0he\0llo\\0", + 'hello\0\0' + ); + +// loop through each element of the array and check the working of strtok() +// when supplied with different string values + +$counter = 1; +foreach( $strings_with_nulls as $string ) { + echo "\n--- Iteration $counter ---\n"; + var_dump( strtok($string, "\0") ); + for($count = 1; $count <= 5; $count++) { + var_dump( strtok("\0") ); + } + $counter++; +} + + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with embedded nulls in the strings *** + +--- Iteration 1 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 2 --- +string(2) "\0" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 3 --- +string(5) "hello" +string(5) "world" +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 4 --- +string(3) "hel" +string(2) "lo" +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 5 --- +string(5) "hello" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 6 --- +string(11) "hello world" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 7 --- +string(4) "\0he" +string(5) "llo\0" +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 8 --- +string(9) "hello\0\0" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +Done diff --git a/ext/standard/tests/strings/strtok_variation5.phpt b/ext/standard/tests/strings/strtok_variation5.phpt new file mode 100644 index 0000000000..c49f7ded9f --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation5.phpt @@ -0,0 +1,150 @@ +--TEST-- +Test strtok() function : usage variations - miscellaneous inputs +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with miscellaneous combinations of string and token +*/ + +echo "*** Testing strtok() : with miscellaneous inputs ***\n"; + +// defining arrays for input strings and tokens +$string_array = array( + "HELLO WORLD", + "hello world", + "_HELLO_WORLD_", + "/thello/t/wor/ttld", + "hel/lo/t/world", + "one:$:two:!:three:#:four", + "\rhello/r/wor\rrld", + chr(0), + chr(0).chr(0), + chr(0).'hello'.chr(0), + 'hello'.chr(0).'world' + ); +$token_array = array( + "wr", + "hello world", + "__", + "t/", + '/t', + ":", + "\r", + "\0", + "\0", + "\0", + "\0", + ); + +// loop through each element of the array and check the working of strtok() +// when supplied with different string and token values + +$counter =1; +foreach( $string_array as $string ) { + echo "\n--- Iteration $counter ---\n"; + var_dump( strtok($string, $token_array[$counter-1]) ); + for( $count = 1; $count <=5; $count++ ) { + var_dump( strtok($token_array[$counter-1]) ); + } + $counter++; +} + + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with miscellaneous inputs *** + +--- Iteration 1 --- +string(11) "HELLO WORLD" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 2 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 3 --- +string(5) "HELLO" +string(5) "WORLD" +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 4 --- +string(5) "hello" +string(3) "wor" +string(2) "ld" +bool(false) +bool(false) +bool(false) + +--- Iteration 5 --- +string(3) "hel" +string(2) "lo" +string(5) "world" +bool(false) +bool(false) +bool(false) + +--- Iteration 6 --- +string(3) "one" +string(1) "$" +string(3) "two" +string(1) "!" +string(5) "three" +string(1) "#" + +--- Iteration 7 --- +string(11) "hello/r/wor" +string(3) "rld" +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 8 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 9 --- +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 10 --- +string(5) "hello" +bool(false) +bool(false) +bool(false) +bool(false) +bool(false) + +--- Iteration 11 --- +string(5) "hello" +string(5) "world" +bool(false) +bool(false) +bool(false) +bool(false) +Done diff --git a/ext/standard/tests/strings/strtok_variation6.phpt b/ext/standard/tests/strings/strtok_variation6.phpt new file mode 100644 index 0000000000..5a77f6f9e9 --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation6.phpt @@ -0,0 +1,160 @@ +--TEST-- +Test strtok() function : usage variations - invalid escape sequences as tokens +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : with invalid escape sequences in token +*/ + +echo "*** Testing strtok() : with invalid escape sequences in token ***\n"; + +// defining arrays for input strings and tokens +$string_array = array( + "khellok worldk", + "\khello\k world\k", + "/khello\k world/k", + "/hellok/ world" + ); +$token_array = array( + "k", + "/ ", + "/k", + "\k", + "\\\\\\\k\h\e\l\o\w\r\l\d" + ); + +// loop through each element of the array and check the working of strtok() +// when supplied with different string and token values + +$counter =1; +foreach( $string_array as $string ) { + echo "\n--- Iteration $counter ---\n"; + foreach( $token_array as $token ) { + var_dump( strtok($string, $token) ); + for( $count = 1; $count <=3; $count++ ) { + var_dump( strtok($token) ); + } + echo "\n"; + } + $counter++; +} + + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with invalid escape sequences in token *** + +--- Iteration 1 --- +string(5) "hello" +string(6) " world" +bool(false) +bool(false) + +string(7) "khellok" +string(6) "worldk" +bool(false) +bool(false) + +string(5) "hello" +string(6) " world" +bool(false) +bool(false) + +string(5) "hello" +string(6) " world" +bool(false) +bool(false) + +string(1) " " +string(1) "r" +bool(false) +bool(false) + + +--- Iteration 2 --- +string(1) "\" +string(6) "hello\" +string(7) " world\" +bool(false) + +string(9) "\khello\k" +string(7) "world\k" +bool(false) +bool(false) + +string(1) "\" +string(6) "hello\" +string(7) " world\" +bool(false) + +string(5) "hello" +string(6) " world" +bool(false) +bool(false) + +string(1) " " +string(1) "r" +bool(false) +bool(false) + + +--- Iteration 3 --- +string(1) "/" +string(6) "hello\" +string(7) " world/" +bool(false) + +string(8) "khello\k" +string(5) "world" +string(1) "k" +bool(false) + +string(6) "hello\" +string(6) " world" +bool(false) +bool(false) + +string(1) "/" +string(5) "hello" +string(7) " world/" +bool(false) + +string(1) "/" +string(1) " " +string(1) "r" +string(1) "/" + + +--- Iteration 4 --- +string(6) "/hello" +string(7) "/ world" +bool(false) +bool(false) + +string(6) "hellok" +string(5) "world" +bool(false) +bool(false) + +string(5) "hello" +string(6) " world" +bool(false) +bool(false) + +string(6) "/hello" +string(7) "/ world" +bool(false) +bool(false) + +string(1) "/" +string(2) "/ " +string(1) "r" +bool(false) + +Done diff --git a/ext/standard/tests/strings/strtok_variation7.phpt b/ext/standard/tests/strings/strtok_variation7.phpt new file mode 100644 index 0000000000..28cbf7d917 --- /dev/null +++ b/ext/standard/tests/strings/strtok_variation7.phpt @@ -0,0 +1,108 @@ +--TEST-- +Test strtok() function : usage variations - modifying the input string while tokenising +--FILE-- +<?php +/* Prototype : string strtok ( str $str, str $token ) + * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token + * Source code: ext/standard/string.c +*/ + +/* + * Testing strtok() : modifying the input string while it is getting tokenised +*/ + +echo "*** Testing strtok() : with modification of input string in between tokenising ***\n"; + +$str = "this is a sample string"; +$token = " "; + +echo "\n*** Testing strtok() when string being tokenised is prefixed with another string in between the process ***\n"; +var_dump( strtok($str, $token) ); +// adding a string to the input string which is being tokenised +$str = "extra string ".$str; +for( $count = 1; $count <=6; $count++ ) { + echo "\n-- Token $count is --\n"; + var_dump( strtok($token) ); + echo "\n-- Input str is \"$str\" --\n"; +} + +echo "\n*** Testing strtok() when string being tokenised is suffixed with another string in between the process ***\n"; +var_dump( strtok($str, $token) ); +// adding a string to the input string which is being tokenised +$str = $str." extra string"; +for( $count = 1; $count <=10; $count++ ) { + echo "\n-- Token $count is --\n"; + var_dump( strtok($token) ); +} + +echo "Done\n"; +?> +--EXPECTF-- +*** Testing strtok() : with modification of input string in between tokenising *** + +*** Testing strtok() when string being tokenised is prefixed with another string in between the process *** +string(4) "this" + +-- Token 1 is -- +string(2) "is" + +-- Input str is "extra string this is a sample string" -- + +-- Token 2 is -- +string(1) "a" + +-- Input str is "extra string this is a sample string" -- + +-- Token 3 is -- +string(6) "sample" + +-- Input str is "extra string this is a sample string" -- + +-- Token 4 is -- +string(6) "string" + +-- Input str is "extra string this is a sample string" -- + +-- Token 5 is -- +bool(false) + +-- Input str is "extra string this is a sample string" -- + +-- Token 6 is -- +bool(false) + +-- Input str is "extra string this is a sample string" -- + +*** Testing strtok() when string being tokenised is suffixed with another string in between the process *** +string(5) "extra" + +-- Token 1 is -- +string(6) "string" + +-- Token 2 is -- +string(4) "this" + +-- Token 3 is -- +string(2) "is" + +-- Token 4 is -- +string(1) "a" + +-- Token 5 is -- +string(6) "sample" + +-- Token 6 is -- +string(6) "string" + +-- Token 7 is -- +bool(false) + +-- Token 8 is -- +bool(false) + +-- Token 9 is -- +bool(false) + +-- Token 10 is -- +bool(false) +Done |