PHP:检查文件是否可以被删除

3
我想知道是否可以删除一个文件。
函数is_writable()无法工作,因为它不检查包含目录是否允许删除文件。
我也不能使用@unlink(),因为我首先生成可删除文件的列表,并在进行一些计算后仅删除其中一部分。
这个问题中的答案也没有检查目录是否允许删除文件:In PHP, check if a file can be deleted - 所以看来即使经过这么多年,这个简单的问题仍未得到解答。

3
根据 https://unix.stackexchange.com/questions/48579/why-can-rm-remove-read-only-files ,在目录上的 is_writable 权限是你删除文件所需的唯一必要权限。 - apokryfos
3个回答

6

5
2018年Striezel的原始答案中有一个缺少的if子句括号。代码应该是这样的:
if (is_writable(dirname("/path/to/the/file.ext")))
{
    echo "File is deletable.";
}
else
{
    echo "File cannot be deleted.";
}

感谢您发现了遗漏之处。我已经调整了我的答案并添加了缺失的闭括号。 - Striezel

0

您可以使用fileperms来查找目录权限。

echo substr (sprintf ('% o', fileperms ('/ tmp')), -4);

然后使用is_writable()来检查文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接