3 define("PERMISSIONS_MASK", 0777);
5 $script_directory = dirname(__FILE__
);
6 chdir($script_directory);
7 $test_dirname = basename(__FILE__
, ".php") . "testdir";
10 $filepath = __FILE__
. ".tmp";
11 $filename = basename($filepath);
12 $fd = fopen($filepath, "w+");
15 echo "chmod() on a path containing .. and .\n";
16 var_dump(chmod("./$test_dirname/../$filename", 0777));
17 var_dump(chmod("./$test_dirname/../$filename", 0755));
19 printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK
);
21 echo "\nchmod() on a path containing .. with invalid directories\n";
22 var_dump(chmod($filepath, 0777));
23 var_dump(chmod("./$test_dirname/bad_dir/../../$filename", 0755));
25 printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK
);
27 echo "\nchmod() on a linked file\n";
28 $linkname = "somelink";
29 var_dump(symlink($filepath, $linkname));
30 var_dump(chmod($filepath, 0777));
31 var_dump(chmod($linkname, 0755));
33 printf("%o\n", fileperms($filepath) & PERMISSIONS_MASK
);
34 var_dump(unlink($linkname));
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);