1--TEST-- 2Test opendir() 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 : mixed opendir(string $path[, resource $context]) 12 * Description: Open a directory and return a dir_handle 13 * Source code: ext/standard/dir.c 14 */ 15 16/* 17 * Test opendir() with different relative paths as $path argument 18 */ 19 20echo "*** Testing opendir() : usage variation ***\n"; 21 22$base_dir_path = __DIR__ . '/opendir_variation4-win32-mb'; 23@mkdir($base_dir_path); 24 25$level_one_dir_name = "私はガラスを食べられますlevel_one"; 26$level_one_dir_path = "$base_dir_path/$level_one_dir_name"; 27 28$level_two_dir_name = "私はガラスを食べられますlevel_two"; 29$level_two_dir_path = "$base_dir_path/$level_one_dir_name/$level_two_dir_name"; 30 31// create directories 32mkdir($level_one_dir_path); 33mkdir($level_two_dir_path); 34 35echo "\n-- \$path = './私はガラスを食べられますlevel_one': --\n"; 36var_dump(chdir($base_dir_path)); 37var_dump($dh = opendir("./$level_one_dir_name")); 38clean_dh($dh); 39 40echo "\n-- \$path = '私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two': --\n"; 41var_dump(chdir($base_dir_path)); 42var_dump($dh = opendir("$level_one_dir_name/$level_two_dir_name")); 43clean_dh($dh); 44 45echo "\n-- \$path = '..': --\n"; 46var_dump($dh = opendir('..')); 47clean_dh($dh); 48 49echo "\n-- \$path = 'level_two', '.': --\n"; 50var_dump(chdir($level_two_dir_path)); 51var_dump($dh = opendir('.')); 52clean_dh($dh); 53 54echo "\n-- \$path = '../': --\n"; 55var_dump($dh = opendir('../')); 56clean_dh($dh); 57 58echo "\n-- \$path = './': --\n"; 59var_dump(chdir($level_two_dir_path)); 60var_dump($dh = opendir('./')); 61clean_dh($dh); 62 63echo "\n-- \$path = '../../'私はガラスを食べられますlevel_one': --\n"; 64var_dump(chdir($level_two_dir_path)); 65var_dump($dh = opendir("../../$level_one_dir_name")); 66clean_dh($dh); 67 68/* 69 * function to remove directory handle before re-using variable name in test 70 * and to ensure directory is not in use at CLEAN section so can me removed 71 */ 72function clean_dh($dh){ 73 if (is_resource($dh)) { 74 closedir($dh); 75 } 76 unset($dh); 77} 78?> 79===DONE=== 80--CLEAN-- 81<?php 82$base_dir_path = __DIR__ . '/opendir_variation4-win32-mb'; 83rmdir("$base_dir_path/私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two"); 84rmdir("$base_dir_path/私はガラスを食べられますlevel_one"); 85rmdir($base_dir_path); 86?> 87--EXPECTF-- 88*** Testing opendir() : usage variation *** 89 90-- $path = './私はガラスを食べられますlevel_one': -- 91bool(true) 92resource(%d) of type (stream) 93 94-- $path = '私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two': -- 95bool(true) 96resource(%d) of type (stream) 97 98-- $path = '..': -- 99resource(%d) of type (stream) 100 101-- $path = 'level_two', '.': -- 102bool(true) 103resource(%d) of type (stream) 104 105-- $path = '../': -- 106resource(%d) of type (stream) 107 108-- $path = './': -- 109bool(true) 110resource(%d) of type (stream) 111 112-- $path = '../../'私はガラスを食べられますlevel_one': -- 113bool(true) 114resource(%d) of type (stream) 115===DONE=== 116