1--TEST--
2Test vfprintf() function : usage variations - char formats with 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() for char formats with an array of chars passed to the function
12*/
13
14echo "*** Testing vfprintf() : char formats with char values ***\n";
15
16
17// defining array of char formats
18$formats = array(
19  "%c",
20  "%+c %-c %C",
21  "%lc %Lc, %4c %-4c",
22  "%10.4c %-10.4c %04c %04.4c",
23  "%'#2c %'2c %'$2c %'_2c",
24  "%c %c %c %c",
25  "% %%c c%",
26  '%3$c %4$c %1$c %2$c'
27);
28
29// Arrays of char values for the format defined in $format.
30// Each sub array contains char values which correspond to each format string in $format
31$args_array = array(
32  array(0),
33  array('c', 67, 68),
34  array(' ', " ", -67, +67),
35  array(97, -97, 98, +98),
36  array(97, -97, 98, +98),
37  array(0x123b, 0xfAb, 0123, 012),
38  array(38, -1234, 2345),
39  array(67, 68, 65, 66)
40
41);
42
43/* creating dumping file */
44$data_file = __DIR__ . '/vfprintf_variation9.txt';
45if (!($fp = fopen($data_file, 'wt')))
46   return;
47
48// looping to test vfprintf() with different char formats from the above $format array
49// and with char values from the above $args_array array
50$counter = 1;
51foreach($formats as $format) {
52  fprintf($fp, "\n-- Iteration %d --\n",$counter);
53  vfprintf($fp, $format, $args_array[$counter-1]);
54  $counter++;
55}
56
57fclose($fp);
58print_r(file_get_contents($data_file));
59echo "\n";
60
61unlink($data_file);
62
63?>
64===DONE===
65--EXPECT--
66*** Testing vfprintf() : char formats with char values ***
67
68-- Iteration 1 --
6970-- Iteration 2 --
71� C
72-- Iteration 3 --
73� c, � C
74-- Iteration 4 --
75a � b b
76-- Iteration 5 --
77a � b b
78-- Iteration 6 --
79; � S
80
81-- Iteration 7 --
82%. c
83-- Iteration 8 --
84A B C D
85===DONE===
86