【问题标题】:Can not write to file, even though is_writable returns true无法写入文件,即使 is_writable 返回 true
【发布时间】:2012-09-07 03:51:19
【问题描述】:

有人对此有任何想法吗?我用file_exists()is_writable() 检查文件,两者都返回true。为了安全起见,我将目录和文件设置为 777,但 尝试 fwrite() 或 file_put_contents() 都不会导致文件发生变化

以下是相关代码:

$filePath = dirname( __FILE__ ) . '/' . 'myfile.txt';
file_put_contents($filePath, "waffles are delicious");

【问题讨论】:

  • 它们会导致错误消息吗?
  • @IgnacioVazquez-Abrams 没有错误消息:-/
  • file_put_contents()的返回值是多少
  • 现在可以使用了。老实说,我所做的只是在 file_put_contents 调用周围包裹了一个 var_dump() 。不知道发生了什么
  • @JoeCortopassi 这听起来像是输出缓冲区问题。确保在文件关闭之前程序没有终止。

标签: php file-io permissions fopen


【解决方案1】:

您已经检查了文件的权限,但也查看了所有权。

我经常看到使用原始系统的 uid/gid 从档案中解压文件的问题。当您上传并解压框架、CMS 或论坛的 zip 或 tar.gz 安装存档而不是等待所有文件通过 FTP 上传时,通常会出现这种情况。

要更改文件所有者,您需要在 shell 中执行 chown 命令,将其更改为您帐户的用户名/组。您可能需要成为 root/su 才能执行此操作。

chown -R username:groupname *

-R 使其递归并适用于所有子目录中的所有文件。

【讨论】:

    【解决方案2】:

    尝试删除结束 php 标记以确保这不是空格问题。

    【讨论】:

      猜你喜欢
      • 2012-06-29
      • 2020-07-18
      • 2013-12-12
      • 2016-04-18
      • 2018-09-24
      • 1970-01-01
      • 2019-07-21
      • 2015-03-16
      • 2019-12-15
      相关资源
      最近更新 更多