1--TEST-- 2Test vprintf() function : usage variations - string formats with strings 3--FILE-- 4<?php 5/* Prototype : string vprintf(string format, array args) 6 * Description: Output a formatted string 7 * Source code: ext/standard/formatted_print.c 8*/ 9 10/* 11 * Test vprintf() when different string formats and string values are passed to 12 * the '$format' and '$args' arguments of the function 13*/ 14 15echo "*** Testing vprintf() : string formats with strings ***\n"; 16 17 18// defining different heredoc strings 19$heredoc_string = <<<EOT 20This is string defined 21using heredoc. 22EOT; 23 24/* heredoc string with only numerics */ 25$heredoc_numeric_string = <<<EOT 26123456 3993 274849 string 28EOT; 29 30/* empty heardoc string */ 31$heredoc_empty_string = <<<EOT 32EOT; 33 34// defining array of string formats 35$formats = array( 36 "%s", 37 "%+s %-s %S", 38 "%ls %Ls, %4s %-4s", 39 "%10.4s %-10.4s %04s %04.4s", 40 "%'#2s %'2s %'$2s %'_2s", 41 "%% %%s %10 s%", 42 '%3$s %4$s %1$s %2$s' 43); 44 45// Arrays of string values for the format defined in $format. 46// Each sub array contains string values which correspond to each format string in $format 47$args_array = array( 48 array(" "), 49 array("hello\0world", "hello\0", "\0hello"), 50 array("@#$%&*", "@#$%&*", "\x55F", "\001"), 51 array("sunday", 'monday', "tuesday", 'wednesday'), 52 array($heredoc_string, "abcdef", $heredoc_numeric_string, $heredoc_empty_string), 53 array("one", "two", 'three', 'four'), 54 array("three", 'four', 'one', "two") 55 56); 57 58// looping to test vprintf() with different string formats from the above $format array 59// and with string from the above $args_array array 60$counter = 1; 61foreach($formats as $format) { 62 echo "\n-- Iteration $counter --\n"; 63 $result = vprintf($format, $args_array[$counter-1]); 64 echo "\n"; 65 var_dump($result); 66 $counter++; 67} 68 69?> 70===DONE=== 71--EXPECT-- 72*** Testing vprintf() : string formats with strings *** 73 74-- Iteration 1 -- 75 76int(1) 77 78-- Iteration 2 -- 79helloworld hello 80int(19) 81 82-- Iteration 3 -- 83@#$%&* s, UF 84int(19) 85 86-- Iteration 4 -- 87 sund mond tuesday wedn 88int(34) 89 90-- Iteration 5 -- 91This is string defined 92using heredoc. abcdef 123456 3993 934849 string __ 94int(71) 95 96-- Iteration 6 -- 97% %s s 98int(6) 99 100-- Iteration 7 -- 101one two three four 102int(18) 103===DONE=== 104