1--TEST-- 2Test vfprintf() function : usage variations - float formats with non-float values 3--FILE-- 4<?php 5/* Prototype : int vfprintf ( resource $handle , string $format , array $args ) 6 * Description: Write a formatted string to a stream 7 * Source code: ext/standard/formatted_print.c 8*/ 9 10/* 11 * Test vfprintf() when different float formats and non-float values are passed to 12 * the '$format' and '$args' arguments of the function 13*/ 14 15echo "*** Testing vfprintf() : float formats and non-float values ***\n"; 16 17// defining array of float formats 18$formats = 19 '%f %+f %-f 20 %lf %Lf %4f %-4f 21 %10.4f %-10.4f %04f %04.4f 22 %\'#2f %\'2f %\'$2f %\'_2f 23 %3$f %4$f %1$f %2$f'; 24 25// Arrays of non float values for the format defined in $format. 26// Each sub array contains non float values which correspond to each format in $format 27$args_array = array( 28 29 // array of int values 30 array(2, -2, +2, 31 123456, 123456234, -12346789, +12346789, 32 123200, +20000, -40000, 22212, 33 12345780, 1211111, -12111111, -12345634, 34 3, +4, 1,-2 ), 35 36 // array of strings 37 array(" ", ' ', 'hello', 38 '123hello', "123hello", '-123hello', '+123hello', 39 "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello', 40 "1234hello", "hello\0world", "NULL", "true", 41 "3", "4", '1', '2'), 42 43 // different arrays 44 array( array(0), array(1, 2), array(-1, -1), 45 array("123"), array('123'), array('-123'), array("-123"), 46 array(true), array(false), array(TRUE), array(FALSE), 47 array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"), 48 array("3"), array("4"), array("1"), array("2") ), 49 50 // array of boolean data 51 array( true, TRUE, false, 52 TRUE, 0, FALSE, 1, 53 true, false, TRUE, FALSE, 54 0, 1, 1, 0, 55 1, TRUE, 0, FALSE), 56 57); 58 59/* creating dumping file */ 60$data_file = dirname(__FILE__) . '/vfprintf_variation6.txt'; 61if (!($fp = fopen($data_file, 'wt'))) 62 return; 63 64// looping to test vfprintf() with different float formats from the above $format array 65// and with non-float values from the above $args_array array 66$counter = 1; 67foreach($args_array as $args) { 68 fprintf($fp, "\n-- Iteration %d --\n",$counter); 69 vfprintf($fp, $formats, $args); 70 $counter++; 71} 72 73fclose($fp); 74print_r(file_get_contents($data_file)); 75echo "\n"; 76 77unlink($data_file); 78 79?> 80===DONE=== 81--EXPECT-- 82*** Testing vfprintf() : float formats and non-float values *** 83 84-- Iteration 1 -- 852.000000 -2.000000 2.000000 86 123456.000000 f -12346789.000000 12346789.000000 87 123200.0000 20000.0000 -40000.000000 22212.0000 88 12345780.000000 1211111.000000 -12111111.000000 -12345634.000000 89 2.000000 123456.000000 2.000000 -2.000000 90-- Iteration 2 -- 910.000000 +0.000000 0.000000 92 123.000000 f -123.000000 123.000000 93 0.0000 0.0000 123456.000000 0.0000 94 1234.000000 0.000000 0.000000 0.000000 95 0.000000 123.000000 0.000000 0.000000 96-- Iteration 3 -- 971.000000 +1.000000 1.000000 98 1.000000 f 1.000000 1.000000 99 1.0000 1.0000 1.000000 1.0000 100 1.000000 1.000000 1.000000 1.000000 101 1.000000 1.000000 1.000000 1.000000 102-- Iteration 4 -- 1031.000000 +1.000000 0.000000 104 1.000000 f 0.000000 1.000000 105 1.0000 0.0000 1.000000 0.0000 106 0.000000 1.000000 1.000000 0.000000 107 0.000000 1.000000 1.000000 1.000000 108===DONE=== 109