2
chmod() with various paths
5
if (substr(PHP_OS, 0, 3) != 'WIN') {
6
die('skip Windows only chmod test');
12
define("PERMISSIONS_MASK", 0777);
14
$script_directory = dirname(__FILE__);
15
chdir($script_directory);
16
$test_dirname = basename(__FILE__, ".php") . "testdir";
19
$filepath = __FILE__ . ".tmp";
20
$filename = basename($filepath);
21
$fd = fopen($filepath, "w+");
24
echo "chmod() on a path containing .. and .\n";
25
var_dump(chmod("./$test_dirname/../$filename", 0777));
26
var_dump(chmod("./$test_dirname/../$filename", 0755));
28
printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK);
30
echo "\nchmod() on a path containing .. with invalid directories\n";
31
var_dump(chmod($filepath, 0777));
32
var_dump(chmod("./$test_dirname/bad_dir/../../$filename", 0755));
34
printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK);
36
echo "\nchmod() on a relative path from a different working directory\n";
38
var_dump(chmod("../$filename", 0777));
39
var_dump(chmod("../$filename", 0755));
41
printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK);
42
chdir($script_directory);
44
echo "\nchmod() on a directory with a trailing /\n";
45
var_dump(chmod($test_dirname, 0777));
46
var_dump(chmod("$test_dirname/", 0775));
48
printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK);
50
chdir($script_directory);
56
chmod() on a path containing .. and .
61
chmod() on a path containing .. with invalid directories
66
chmod() on a relative path from a different working directory
71
chmod() on a directory with a trailing /