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