【问题标题】:PHP writing to file on serverPHP写入服务器上的文件
【发布时间】:2017-06-05 05:52:19
【问题描述】:

我正在尝试写入本地服务器上的文件,但我不知道为什么,我没有找到任何很好的理由说明我正在做的事情不应该工作。

我尝试过的:

file_put_contents("./lol.txt", "Contents");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/lil.txt", "Contents");
file_put_contents($_SERVER['DOCUMENT_ROOT'] . "lal.txt", "Contents");
file_put_contents("lel.txt", "Contents");

如果需要,我会提供任何其他信息。

【问题讨论】:

  • 你遇到了什么错误?
  • 首先你应该转储 "$_SERVER['DOCUMENT_ROOT'] . "/lil.txt"" 路径并确保该文件不存在。接下来,我建议检查您的 php 日志文件以获取更多详细信息。您是否具有将文件写入该文件夹的文件系统权限?
  • file_put_contents() 返回 false 并且没有输出到控制台所以我搜索了一下并使用了 error_get_last()['message'] 并返回“...无法打开流:权限被拒绝”我在其他堆栈上找到了类似问题的答案(例如:只需更改 somefile.txt 权限),但直到现在我才想到我应该更改整个目录权限(chmod +777 dirname),反正就是这样为我做了,谢谢@AmitGaud,我没想到要检查更多错误。

标签: php lamp


【解决方案1】:

Use realpath - 返回规范化的绝对​​路径名

file_put_contents(realpath("somedirectory/somefile.txt"),$content);

并检查文件夹和文件的权限是否有写 访问。

【讨论】:

  • 我在上面的cmets中说过,确实是权限问题,谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-04-21
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2015-07-26
  • 2010-10-15
相关资源
最近更新 更多