1--TEST-- 2Test strtok() function : usage variations - with heredoc strings 3--FILE-- 4<?php 5/* Prototype : string strtok ( str $str, str $token ) 6 * Description: splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token 7 * Source code: ext/standard/string.c 8*/ 9 10/* 11 * Testing strtok() : with heredoc strings 12*/ 13 14echo "*** Testing strtok() : with heredoc strings ***\n"; 15 16// defining different heredoc strings 17$empty_heredoc = <<<EOT 18EOT; 19 20$heredoc_with_newline = <<<EOT 21\n 22 23EOT; 24 25$heredoc_with_characters = <<<EOT 26first line of heredoc string 27second line of heredoc string 28third line of heredocstring 29EOT; 30 31$heredoc_with_newline_and_tabs = <<<EOT 32hello\tworld\nhello\nworld\n 33EOT; 34 35$heredoc_with_alphanumerics = <<<EOT 36hello123world456 371234hello\t1234 38EOT; 39 40$heredoc_with_embedded_nulls = <<<EOT 41hello\0world\0hello 42\0hello\0 43EOT; 44 45$heredoc_strings = array( 46 $empty_heredoc, 47 $heredoc_with_newline, 48 $heredoc_with_characters, 49 $heredoc_with_newline_and_tabs, 50 $heredoc_with_alphanumerics, 51 $heredoc_with_embedded_nulls 52 ); 53 54// loop through each element of the array and check the working of strtok() 55// when supplied with different string values 56 57$count = 1; 58foreach($heredoc_strings as $string) { 59 echo "\n--- Iteration $count ---\n"; 60 var_dump( strtok($string, "5o\0\n\t") ); 61 for($counter = 1; $counter <= 10; $counter++) { 62 var_dump( strtok("5o\0\n\t") ); 63 } 64 $count++; 65} 66 67 68echo "Done\n"; 69?> 70--EXPECTF-- 71*** Testing strtok() : with heredoc strings *** 72 73--- Iteration 1 --- 74bool(false) 75bool(false) 76bool(false) 77bool(false) 78bool(false) 79bool(false) 80bool(false) 81bool(false) 82bool(false) 83bool(false) 84bool(false) 85 86--- Iteration 2 --- 87bool(false) 88bool(false) 89bool(false) 90bool(false) 91bool(false) 92bool(false) 93bool(false) 94bool(false) 95bool(false) 96bool(false) 97bool(false) 98 99--- Iteration 3 --- 100string(11) "first line " 101string(7) "f hered" 102string(8) "c string" 103string(3) "sec" 104string(8) "nd line " 105string(7) "f hered" 106string(8) "c string" 107string(11) "third line " 108string(7) "f hered" 109string(7) "cstring" 110bool(false) 111 112--- Iteration 4 --- 113string(4) "hell" 114string(1) "w" 115string(3) "rld" 116string(4) "hell" 117string(1) "w" 118string(3) "rld" 119bool(false) 120bool(false) 121bool(false) 122bool(false) 123bool(false) 124 125--- Iteration 5 --- 126string(4) "hell" 127string(4) "123w" 128string(4) "rld4" 129string(1) "6" 130string(8) "1234hell" 131string(4) "1234" 132bool(false) 133bool(false) 134bool(false) 135bool(false) 136bool(false) 137 138--- Iteration 6 --- 139string(4) "hell" 140string(1) "w" 141string(3) "rld" 142string(4) "hell" 143string(4) "hell" 144bool(false) 145bool(false) 146bool(false) 147bool(false) 148bool(false) 149bool(false) 150Done 151