PHP is_writable() 检查文件是否可以写入?

PHP is_writable() to check if file can be written?

我了解到可以使用 is_writable() 检查文件夹或文件是否可写。

如何检查文件是否可以写入文件夹?

  1. 我是否检查文件夹以及文件夹是否可写?那这个文件允许放到那个文件夹里吗?
  2. 如果文件已经写入文件夹,我该如何检查它是否可以再次写入(编辑)?我需要吗?如果是这样,我是否检查文件而不是文件夹?
  3. 这样做安全(正确)吗?

PHP函数is_writable就是为了这个目的。如果你想在写入文件后检查文件是否仍然可写,你可以使用相同的功能。

阅读您所指问题中链接的文档。 is_writable() 正在处理文件和目录。

但请注意:如果您有这样的代码:

if (is_writeable("foo.txt")) {
    $fp = fopen("foo.txt", "w");
    /* ...*/
}

这可能仍然会失败。例如,可能存在锁定或竞争条件(两个命令之间的权限更改)。最好直接尝试打开然后处理错误。

$fp = @fopen("foo.txt", "w");
if (!$fp) { 
    report_error_in_some_way();
}