1--TEST-- 2Test vfprintf() function : variation functionality 3--CREDITS-- 4Felix De Vliegher <felix.devliegher@gmail.com> 5--INI-- 6precision=14 7--FILE-- 8<?php 9/* Prototype : int vfprintf(resource stream, string format, array args) 10 * Description: Output a formatted string into a stream 11 * Source code: ext/standard/formatted_print.c 12 * Alias to functions: 13 */ 14 15echo "*** Testing vfprintf() : variation functionality ***\n"; 16 17// Open handle 18$file = 'vfprintf_test.txt'; 19$fp = fopen( $file, 'a+' ); 20 21$funset = fopen( __FILE__, 'r' ); 22unset( $funset ); 23 24class FooClass 25{ 26 public function __toString() 27 { 28 return "Object"; 29 } 30} 31 32// Output facilitating function 33function writeAndDump($fp, $format, $args) 34{ 35 ftruncate( $fp, 0 ); 36 $length = vfprintf( $fp, $format, $args ); 37 rewind( $fp ); 38 $content = stream_get_contents( $fp ); 39 var_dump( $content ); 40 var_dump( $length ); 41} 42 43// Test vfprintf() 44writeAndDump( $fp, "format", null ); 45writeAndDump( $fp, "Foo is %d and %s", array( 30, 'bar' ) ); 46writeAndDump( $fp, "Foobar testing", array() ); 47writeAndDump( $fp, "%s %s %s", array( 'bar', 'bar', 'bar' ) ); 48writeAndDump( $fp, "%02d", array( 50 ) ); 49writeAndDump( $fp, "", array() ); 50writeAndDump( $fp, "Testing %b %d %f %o %s %x %X", array( 9, 6, 2.5502, 24, "foobar", 15, 65 ) ); 51@writeAndDump( $funset, "Foo with %s", array( 'string' ) ); 52@writeAndDump( new FooClass(), "Foo with %s", array( 'string' ) ); 53 54// Close handle 55fclose( $fp ); 56 57?> 58===DONE=== 59--CLEAN-- 60<?php 61 62$file = 'vfprintf_test.txt'; 63unlink( $file ); 64 65?> 66--EXPECT-- 67*** Testing vfprintf() : variation functionality *** 68string(6) "format" 69int(6) 70string(17) "Foo is 30 and bar" 71int(17) 72string(14) "Foobar testing" 73int(14) 74string(11) "bar bar bar" 75int(11) 76string(2) "50" 77int(2) 78string(0) "" 79int(0) 80string(38) "Testing 1001 6 2.550200 30 foobar f 41" 81int(38) 82bool(false) 83bool(false) 84bool(false) 85bool(false) 86===DONE=== 87