1--TEST--
2Test scandir() function : usage variations - different file names
3--FILE--
4<?php
5/* Prototype  : array scandir(string $dir [, int $sorting_order [, resource $context]])
6 * Description: List files & directories inside the specified path
7 * Source code: ext/standard/dir.c
8 */
9
10/*
11 * Pass a directory containing files with different types of names to test how scandir()
12 * reads them
13 */
14
15echo "*** Testing scandir() : usage variations ***\n";
16
17$dir_path = dirname(__FILE__) . "/scandir_variation8/";
18mkdir($dir_path);
19
20// heredoc string
21$heredoc = <<<EOT
22hd_file
23EOT;
24
25$inputs = array(
26
27       // int data
28/*1*/  0,
29       1,
30       12345,
31       -2345,
32
33       // float data
34/*5*/  10.5,
35       -10.5,
36       12.3456789000e10,
37       12.3456789000E-10,
38       .5,
39
40       // empty data
41/*10*/ "",
42       array(),
43
44       // string data
45/*12*/ "double_file",
46       'single_file',
47       $heredoc,
48);
49
50$iterator = 1;
51foreach($inputs as $key => $input) {
52	echo "\n-- Iteration $iterator --\n";
53	$handle = "fp{$iterator}";
54	var_dump( $$handle = fopen($dir_path . $input . '.tmp', 'w') );
55	fclose($$handle);
56	$iterator++;
57};
58
59echo "\n-- Call to scandir() --\n";
60var_dump($content = scandir($dir_path));
61
62// remove all files in directory so can remove directory in CLEAN section
63foreach ($content as $file_name) {
64	// suppress errors as won't be able to remove "." and ".." entries
65	@unlink($dir_path . $file_name);
66}
67?>
68===DONE===
69--CLEAN--
70<?php
71$dir_path = dirname(__FILE__) . "/scandir_variation8";
72rmdir($dir_path);
73?>
74--EXPECTF--
75*** Testing scandir() : usage variations ***
76
77-- Iteration 1 --
78resource(%d) of type (stream)
79
80-- Iteration 2 --
81resource(%d) of type (stream)
82
83-- Iteration 3 --
84resource(%d) of type (stream)
85
86-- Iteration 4 --
87resource(%d) of type (stream)
88
89-- Iteration 5 --
90resource(%d) of type (stream)
91
92-- Iteration 6 --
93resource(%d) of type (stream)
94
95-- Iteration 7 --
96resource(%d) of type (stream)
97
98-- Iteration 8 --
99resource(%d) of type (stream)
100
101-- Iteration 9 --
102resource(%d) of type (stream)
103
104-- Iteration 10 --
105resource(%d) of type (stream)
106
107-- Iteration 11 --
108resource(%d) of type (stream)
109
110-- Iteration 12 --
111resource(%d) of type (stream)
112
113-- Iteration 13 --
114resource(%d) of type (stream)
115
116-- Iteration 14 --
117resource(%d) of type (stream)
118
119-- Call to scandir() --
120array(16) {
121  [0]=>
122  string(9) "-10.5.tmp"
123  [1]=>
124  string(9) "-2345.tmp"
125  [2]=>
126  string(1) "."
127  [3]=>
128  string(2) ".."
129  [4]=>
130  string(4) ".tmp"
131  [5]=>
132  string(7) "0.5.tmp"
133  [6]=>
134  string(5) "0.tmp"
135  [7]=>
136  string(17) "1.23456789E-9.tmp"
137  [8]=>
138  string(5) "1.tmp"
139  [9]=>
140  string(8) "10.5.tmp"
141  [10]=>
142  string(9) "12345.tmp"
143  [11]=>
144  string(16) "123456789000.tmp"
145  [12]=>
146  string(9) "Array.tmp"
147  [13]=>
148  string(15) "double_file.tmp"
149  [14]=>
150  string(11) "hd_file.tmp"
151  [15]=>
152  string(15) "single_file.tmp"
153}
154===DONE===
155