1--TEST--
2Test vfprintf() function : usage variations - char formats with non-char 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 char formats and non-char values are passed to
12 * the '$format' and '$args' arguments of the function
13*/
14
15echo "*** Testing vfprintf() : char formats and non-char values ***\n";
16
17// defining an array of various char formats
18$formats =
19  '%c %+c %-c
20   %lc %Lc %4c %-4c
21   %10.4c %-10.4c %04c %04.4c
22   %\'10c %\'10c %\'$10c %\'_10c
23   %3$c %4$c %1$c %2$c';
24
25// Arrays of non char values for the format defined in $format.
26// Each sub array contains non char values which correspond to each format in $format
27$args_array = array(
28
29  // array of float values
30  array(65.8, -65.8, +66.8,
31        93.2, -93.2, 126.8, -126.49,
32        35.44, -35.68, 32.99, -32.00,
33        -61.51, 61.51, 50.49, -54.50,
34        83.33, +84.44, 81.11, 82.22),
35
36  // array of int values
37  array(65, -65, +66,
38        169, -169, 126, -126,
39        35, -35, 32, -32,
40        -61, 61, 50, -54,
41        83, +84, 81, 82),
42
43  // array of strings
44  array(" ", ' ', 'hello',
45        '123hello', "123hello", '-123hello', '+123hello',
46        "\12345678hello", "-\12345678hello", '0123456hello', 'h123456ello',
47        "1234hello", "hello\0world", "NULL", "true",
48        "3", "4", '1', '2'),
49
50  // different arrays
51  array( array(0), array(1, 2), array(-1, -1),
52         array("123"), array('123'), array('-123'), array("-123"),
53         array(true), array(false), array(TRUE), array(FALSE),
54         array("123hello"), array("1", "2"), array('123hello'), array(12=>"12twelve"),
55         array("3"), array("4"), array("1"), array("2") ),
56
57  // array of boolean data
58  array( true, TRUE, false,
59         TRUE, 0, FALSE, 1,
60         true, false, TRUE, FALSE,
61         0, 1, 1, 0,
62         1, TRUE, 0, FALSE),
63
64);
65
66/* creating dumping file */
67$data_file = dirname(__FILE__) . '/dump.txt';
68if (!($fp = fopen($data_file, 'wt')))
69   return;
70
71// looping to test vfprintf() with different char formats from the above $format array
72// and with non-char values from the above $args_array array
73$counter = 1;
74foreach($args_array as $args) {
75  fprintf($fp, "\n-- Iteration %d --\n",$counter);
76  vfprintf($fp, $formats, $args);
77  $counter++;
78}
79
80fclose($fp);
81print_r(file_get_contents($data_file));
82echo "\n";
83
84unlink($data_file);
85
86?>
87===DONE===
88--EXPECT--
89*** Testing vfprintf() : char formats and non-char values ***
90
91-- Iteration 1 --
92A � B
93   ] c ~ �
94   # �   �
95   � = 2 �
96   B ] A �
97-- Iteration 2 --
98A � B
99   � c ~ �
100   # �   �
101   � = 2 �
102   B � A �
103-- Iteration 3 --
104� � �
105   { c � {
106   � � @ �
107   � � � �
108   � { � �
109-- Iteration 4 --
110  
111    c  
112      
113      
114      
115-- Iteration 5 --
116  �
117    c � 
118    �  �
119   �   �
120   �   
121===DONE===
122