1--TEST-- 2Test scandir() function : usage variations - different relative paths 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/* Prototype : array scandir(string $dir [, int $sorting_order [, resource $context]]) 12 * Description: List files & directories inside the specified path 13 * Source code: ext/standard/dir.c 14 */ 15 16/* 17 * Test scandir() with relative paths as $dir argument 18 */ 19 20echo "*** Testing scandir() : usage variations ***\n"; 21 22// include for create_files/delete_files functions 23include (__DIR__ . '/../file/file.inc'); 24 25$base_dir_path = __DIR__ . '/scandir_variation4-win32-mb'; 26@mkdir($base_dir_path); 27 28$level_one_dir_path = "$base_dir_path/私はガラスを食べられますlevel_one"; 29$level_two_dir_path = "$level_one_dir_path/私はガラスを食べられますlevel_two"; 30 31// create directories and files 32mkdir($level_one_dir_path); 33create_files($level_one_dir_path, 2, 'numeric', 0755, 1, 'w', '私はガラスを食べられますlevel_one', 1); 34mkdir($level_two_dir_path); 35create_files($level_two_dir_path, 2, 'numeric', 0755, 1, 'w', '私はガラスを食べられますlevel_two', 1); 36 37echo "\n-- \$path = './私はガラスを食べられますlevel_one': --\n"; 38var_dump(chdir($base_dir_path)); 39var_dump(scandir('./私はガラスを食べられますlevel_one')); 40 41echo "\n-- \$path = 'level_one/私はガラスを食べられますlevel_two': --\n"; 42var_dump(chdir($base_dir_path)); 43var_dump(scandir('私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two')); 44 45echo "\n-- \$path = '..': --\n"; 46var_dump(chdir($level_two_dir_path)); 47var_dump(scandir('..')); 48 49echo "\n-- \$path = '私はガラスを食べられますlevel_two', '.': --\n"; 50var_dump(chdir($level_two_dir_path)); 51var_dump(scandir('.')); 52 53echo "\n-- \$path = '../': --\n"; 54var_dump(chdir($level_two_dir_path)); 55var_dump(scandir('../')); 56 57echo "\n-- \$path = './': --\n"; 58var_dump(chdir($level_two_dir_path)); 59var_dump(scandir('./')); 60 61echo "\n-- \$path = '../../'私はガラスを食べられますlevel_one': --\n"; 62var_dump(chdir($level_two_dir_path)); 63var_dump(scandir('../../私はガラスを食べられますlevel_one')); 64 65@delete_files($level_one_dir_path, 2, '私はガラスを食べられますlevel_one'); 66@delete_files($level_two_dir_path, 2, '私はガラスを食べられますlevel_two'); 67?> 68===DONE=== 69--CLEAN-- 70<?php 71$base_dir_path = __DIR__ . '/scandir_variation4-win32-mb'; 72rmdir("$base_dir_path/私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two"); 73rmdir("$base_dir_path/私はガラスを食べられますlevel_one"); 74rmdir($base_dir_path); 75?> 76--EXPECT-- 77*** Testing scandir() : usage variations *** 78 79-- $path = './私はガラスを食べられますlevel_one': -- 80bool(true) 81array(5) { 82 [0]=> 83 string(1) "." 84 [1]=> 85 string(2) ".." 86 [2]=> 87 string(50) "私はガラスを食べられますlevel_one1.tmp" 88 [3]=> 89 string(50) "私はガラスを食べられますlevel_one2.tmp" 90 [4]=> 91 string(45) "私はガラスを食べられますlevel_two" 92} 93 94-- $path = 'level_one/私はガラスを食べられますlevel_two': -- 95bool(true) 96array(4) { 97 [0]=> 98 string(1) "." 99 [1]=> 100 string(2) ".." 101 [2]=> 102 string(50) "私はガラスを食べられますlevel_two1.tmp" 103 [3]=> 104 string(50) "私はガラスを食べられますlevel_two2.tmp" 105} 106 107-- $path = '..': -- 108bool(true) 109array(5) { 110 [0]=> 111 string(1) "." 112 [1]=> 113 string(2) ".." 114 [2]=> 115 string(50) "私はガラスを食べられますlevel_one1.tmp" 116 [3]=> 117 string(50) "私はガラスを食べられますlevel_one2.tmp" 118 [4]=> 119 string(45) "私はガラスを食べられますlevel_two" 120} 121 122-- $path = '私はガラスを食べられますlevel_two', '.': -- 123bool(true) 124array(4) { 125 [0]=> 126 string(1) "." 127 [1]=> 128 string(2) ".." 129 [2]=> 130 string(50) "私はガラスを食べられますlevel_two1.tmp" 131 [3]=> 132 string(50) "私はガラスを食べられますlevel_two2.tmp" 133} 134 135-- $path = '../': -- 136bool(true) 137array(5) { 138 [0]=> 139 string(1) "." 140 [1]=> 141 string(2) ".." 142 [2]=> 143 string(50) "私はガラスを食べられますlevel_one1.tmp" 144 [3]=> 145 string(50) "私はガラスを食べられますlevel_one2.tmp" 146 [4]=> 147 string(45) "私はガラスを食べられますlevel_two" 148} 149 150-- $path = './': -- 151bool(true) 152array(4) { 153 [0]=> 154 string(1) "." 155 [1]=> 156 string(2) ".." 157 [2]=> 158 string(50) "私はガラスを食べられますlevel_two1.tmp" 159 [3]=> 160 string(50) "私はガラスを食べられますlevel_two2.tmp" 161} 162 163-- $path = '../../'私はガラスを食べられますlevel_one': -- 164bool(true) 165array(5) { 166 [0]=> 167 string(1) "." 168 [1]=> 169 string(2) ".." 170 [2]=> 171 string(50) "私はガラスを食べられますlevel_one1.tmp" 172 [3]=> 173 string(50) "私はガラスを食べられますlevel_one2.tmp" 174 [4]=> 175 string(45) "私はガラスを食べられますlevel_two" 176} 177===DONE=== 178