mirror of
https://github.com/php/php-src.git
synced 2024-10-13 20:42:38 +00:00
d6d59a9ee5
ignore differences in the twelfth element of the stat() array. 2. The 'test.file' is created by the script, thus the owner of the file is the user id executing the script. A mode of 0654 does not grant the owner the right to execute the file and therefore, the correct output here is "not executable."
150 lines
3.7 KiB
PHP
150 lines
3.7 KiB
PHP
--TEST--
|
|
File type functions
|
|
--POST--
|
|
--GET--
|
|
--FILE--
|
|
<?php
|
|
@unlink('test.file');
|
|
@unlink('test.link');
|
|
if (file_exists('test.file')) {
|
|
echo "test.file exists\n";
|
|
} else {
|
|
echo "test.file does not exist\n";
|
|
}
|
|
fclose (fopen('test.file', 'w'));
|
|
chmod ('test.file', 0654);
|
|
if (file_exists('test.file')) {
|
|
echo "test.file exists\n";
|
|
} else {
|
|
echo "test.file does not exist\n";
|
|
}
|
|
sleep (2);
|
|
symlink('test.file','test.link');
|
|
if (file_exists('test.link')) {
|
|
echo "test.link exists\n";
|
|
} else {
|
|
echo "test.link does not exist\n";
|
|
}
|
|
if (is_link('test.file')) {
|
|
echo "test.file is a symlink\n";
|
|
} else {
|
|
echo "test.file is not a symlink\n";
|
|
}
|
|
if (is_link('test.link')) {
|
|
echo "test.link is a symlink\n";
|
|
} else {
|
|
echo "test.link is not a symlink\n";
|
|
}
|
|
if (file_exists('test.file')) {
|
|
echo "test.file exists\n";
|
|
} else {
|
|
echo "test.file does not exist\n";
|
|
}
|
|
$s = stat ('test.file');
|
|
$ls = lstat ('test.file');
|
|
for ($i = 0; $i <= 12; $i++) {
|
|
if ($ls[$i] != $s[$i]) {
|
|
echo "test.file lstat and stat differ at element $i\n";
|
|
}
|
|
}
|
|
$s = stat ('test.link');
|
|
$ls = lstat ('test.link');
|
|
for ($i = 0; $i <= 11; $i++) {
|
|
if ($ls[$i] != $s[$i]) {
|
|
if ($i != 6 && $i != 11) echo "test.link lstat and stat differ at element $i\n";
|
|
}
|
|
}
|
|
echo "test.file is " . filetype('test.file') . "\n";
|
|
echo "test.link is " . filetype('test.link') . "\n";
|
|
printf ("test.file permissions are 0%o\n", 0777 & fileperms('test.file'));
|
|
echo "test.file size is " . filesize('test.file') . "\n";
|
|
if (is_writeable('test.file')) {
|
|
echo "test.file is writeable\n";
|
|
} else {
|
|
echo "test.file is not writeable\n";
|
|
}
|
|
if (is_readable('test.file')) {
|
|
echo "test.file is readable\n";
|
|
} else {
|
|
echo "test.file is not readable\n";
|
|
}
|
|
if (is_executable('test.file')) {
|
|
echo "test.file is executable\n";
|
|
} else {
|
|
echo "test.file is not executable\n";
|
|
}
|
|
chmod ('test.file', 0644);
|
|
clearstatcache();
|
|
if (is_executable('test.file')) {
|
|
echo "test.file is executable\n";
|
|
} else {
|
|
echo "test.file is not executable\n";
|
|
}
|
|
if (is_file('test.file')) {
|
|
echo "test.file is a regular file\n";
|
|
} else {
|
|
echo "test.file is not a regular file\n";
|
|
}
|
|
if (is_file('test.link')) {
|
|
echo "test.link is a regular file\n";
|
|
} else {
|
|
echo "test.link is not a regular file\n";
|
|
}
|
|
if (is_dir('test.link')) {
|
|
echo "test.link is a directory\n";
|
|
} else {
|
|
echo "test.link is not a directory\n";
|
|
}
|
|
if (is_dir('../file')) {
|
|
echo "../file is a directory\n";
|
|
} else {
|
|
echo "../file is not a directory\n";
|
|
}
|
|
if (is_dir('test.file')) {
|
|
echo "test.file is a directory\n";
|
|
} else {
|
|
echo "test.file is not a directory\n";
|
|
}
|
|
unlink('test.file');
|
|
unlink('test.link');
|
|
if (file_exists('test.file')) {
|
|
echo "test.file exists (cached)\n";
|
|
} else {
|
|
echo "test.file does not exist\n";
|
|
}
|
|
clearstatcache();
|
|
if (file_exists('test.file')) {
|
|
echo "test.file exists\n";
|
|
} else {
|
|
echo "test.file does not exist\n";
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
test.file does not exist
|
|
test.file exists
|
|
test.link exists
|
|
test.file is not a symlink
|
|
test.link is a symlink
|
|
test.file exists
|
|
test.link lstat and stat differ at element 1
|
|
test.link lstat and stat differ at element 2
|
|
test.link lstat and stat differ at element 7
|
|
test.link lstat and stat differ at element 8
|
|
test.link lstat and stat differ at element 9
|
|
test.link lstat and stat differ at element 10
|
|
test.file is file
|
|
test.link is link
|
|
test.file permissions are 0654
|
|
test.file size is 0
|
|
test.file is writeable
|
|
test.file is readable
|
|
test.file is not executable
|
|
test.file is not executable
|
|
test.file is a regular file
|
|
test.link is a regular file
|
|
test.link is not a directory
|
|
../file is a directory
|
|
test.file is not a directory
|
|
test.file does not exist
|
|
test.file does not exist
|