1--TEST--
2Test scandir() function : usage variations - different file names
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) != 'WIN') {
6  die("skip Valid only on Windows");
7}
8?>
9--FILE--
10<?php
11/*
12 * Pass a directory containing files with different types of names to test how scandir()
13 * reads them
14 */
15
16echo "*** Testing scandir() : usage variations ***\n";
17
18$dir_path = __DIR__ . "/私はガラスを食べられますscandir_variation8/";
19mkdir($dir_path);
20
21// heredoc string
22$heredoc = <<<EOT
23hd_file
24EOT;
25
26$inputs = array(
27
28       // int data
29/*1*/  0,
30       1,
31       12345,
32       -2345,
33
34       // float data
35/*5*/  10.5,
36       -10.5,
37       12.3456789000e10,
38       12.3456789000E-10,
39       .5,
40
41       // empty data
42/*10*/ "",
43       array(),
44
45       // string data
46/*12*/ "double_file",
47       'single_file',
48       $heredoc,
49);
50
51$iterator = 1;
52foreach($inputs as $key => $input) {
53    echo "\n-- Iteration $iterator --\n";
54    $handle = "fp{$iterator}";
55    var_dump( $$handle = @fopen($dir_path . "/私はガラスを食べられます$input.tmp", 'w') );
56    fclose($$handle);
57    $iterator++;
58};
59
60echo "\n-- Call to scandir() --\n";
61var_dump($content = scandir($dir_path));
62
63// remove all files in directory so can remove directory in CLEAN section
64foreach ($content as $file_name) {
65    // suppress errors as won't be able to remove "." and ".." entries
66    @unlink($dir_path . $file_name);
67}
68?>
69--CLEAN--
70<?php
71$dir_path = __DIR__ . "/私はガラスを食べられます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(1) "."
123  [1]=>
124  string(2) ".."
125  [2]=>
126  string(45) "私はガラスを食べられます-10.5.tmp"
127  [3]=>
128  string(45) "私はガラスを食べられます-2345.tmp"
129  [4]=>
130  string(40) "私はガラスを食べられます.tmp"
131  [5]=>
132  string(43) "私はガラスを食べられます0.5.tmp"
133  [6]=>
134  string(41) "私はガラスを食べられます0.tmp"
135  [7]=>
136  string(53) "私はガラスを食べられます1.23456789E-9.tmp"
137  [8]=>
138  string(41) "私はガラスを食べられます1.tmp"
139  [9]=>
140  string(44) "私はガラスを食べられます10.5.tmp"
141  [10]=>
142  string(45) "私はガラスを食べられます12345.tmp"
143  [11]=>
144  string(52) "私はガラスを食べられます123456789000.tmp"
145  [12]=>
146  string(45) "私はガラスを食べられますArray.tmp"
147  [13]=>
148  string(51) "私はガラスを食べられますdouble_file.tmp"
149  [14]=>
150  string(47) "私はガラスを食べられますhd_file.tmp"
151  [15]=>
152  string(51) "私はガラスを食べられますsingle_file.tmp"
153}
154