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