1--TEST-- 2Test chdir() function : usage variations - relative paths 3--FILE-- 4<?php 5/* Prototype : bool chdir(string $directory) 6 * Description: Change the current directory 7 * Source code: ext/standard/dir.c 8 */ 9 10/* 11 * Test chdir() with variations of relative paths 12 */ 13 14echo "*** Testing chdir() : usage variations ***\n"; 15 16$base_dir_path = dirname(__FILE__); 17 18$level2_one_dir_name = "level2_one"; 19$level2_one_dir_path = "$base_dir_path/$level2_one_dir_name"; 20 21$level2_two_dir_name = "level2_two"; 22$level2_two_dir_path = "$base_dir_path/$level2_one_dir_name/$level2_two_dir_name"; 23 24// create directories 25mkdir($level2_one_dir_path); 26mkdir($level2_two_dir_path); 27 28echo "\n-- \$directory = './level2_one': --\n"; 29var_dump(chdir($base_dir_path)); 30var_dump(chdir("./$level2_one_dir_name")); 31var_dump(getcwd()); 32 33echo "\n-- \$directory = 'level2_one/level2_two': --\n"; 34var_dump(chdir($base_dir_path)); 35var_dump(chdir("$level2_one_dir_name/$level2_two_dir_name")); 36var_dump(getcwd()); 37 38echo "\n-- \$directory = '..': --\n"; 39var_dump(chdir('..')); 40var_dump(getcwd()); 41 42echo "\n-- \$directory = 'level2_two', '.': --\n"; 43var_dump(chdir($level2_two_dir_path)); 44var_dump(chdir('.')); 45var_dump(getcwd()); 46 47echo "\n-- \$directory = '../': --\n"; 48var_dump(chdir('../')); 49var_dump(getcwd()); 50 51echo "\n-- \$directory = './': --\n"; 52var_dump(chdir($level2_two_dir_path)); 53var_dump(chdir('./')); 54var_dump(getcwd()); 55 56echo "\n-- \$directory = '../../'level2_one': --\n"; 57var_dump(chdir($level2_two_dir_path)); 58var_dump(chdir("../../$level2_one_dir_name")); 59var_dump(getcwd()); 60 61?> 62===DONE=== 63--CLEAN-- 64<?php 65$file_path = dirname(__FILE__); 66rmdir("$file_path/level2_one/level2_two"); 67rmdir("$file_path/level2_one"); 68?> 69--EXPECTF-- 70*** Testing chdir() : usage variations *** 71 72-- $directory = './level2_one': -- 73bool(true) 74bool(true) 75string(%d) "%slevel2_one" 76 77-- $directory = 'level2_one/level2_two': -- 78bool(true) 79bool(true) 80string(%d) "%slevel2_one%elevel2_two" 81 82-- $directory = '..': -- 83bool(true) 84string(%d) "%slevel2_one" 85 86-- $directory = 'level2_two', '.': -- 87bool(true) 88bool(true) 89string(%d) "%slevel2_one%elevel2_two" 90 91-- $directory = '../': -- 92bool(true) 93string(%d) "%slevel2_one" 94 95-- $directory = './': -- 96bool(true) 97bool(true) 98string(%d) "%slevel2_one%elevel2_two" 99 100-- $directory = '../../'level2_one': -- 101bool(true) 102bool(true) 103string(%d) "%slevel2_one" 104===DONE=== 105