【问题标题】:Why I can't write files using php in xampp?为什么我不能在 xampp 中使用 php 写入文件?
【发布时间】:2014-06-13 10:41:54
【问题描述】:

我在 Windows 中使用 xampp 作为本地开发环境。我试图创建一个附加到文本文件的简单记录器。

function Logger ($logmessage)
{
    $filename = '/errorlog-' . date('Ymd') . '.txt';
    file_put_contents($filename, $logmessage, FILE_APPEND | LOCK_EX);
}

我尝试回显$filename,它显示'/errorlog-20140427.txt',这意味着它已经有有效的文件名(我认为)。

但是当我调用这个记录器函数时,没有出现错误,但是我到处都找不到文件。我试图在整个 htdocs 中搜索*.txt,但没有找到文件。你知道为什么我不能用 php 写文件吗?我需要先使用fopen 吗?当我参考另一个帮助时,我可以直接使用file_put_contents,而不使用fopen。感谢您的帮助。

【问题讨论】:

  • 检查您的网络服务器的错误日志

标签: php windows file xampp


【解决方案1】:

您正在尝试写入文件系统的根目录,例如

$file = '/error-log-' etc...

本质上是一样的

$file = 'c:/error-log' etc...

网络服务器帐户极不可能有权在C:\ 中执行任何操作。

如果您费心检查 file_put_contents 的返回值,您会看到它返回一个布尔值 false 来表示失败。

【讨论】:

  • 是返回假。但在你告诉我之前,我不知道这是什么错误。那么如果我想写入我网站的基本路径怎么办?例如 d:/xampp/htdocs ?
  • 然后执行$file = $_SERVER['DOCUMENT_ROOT'] . "/error-log" 之类的操作。
  • 哦,好的,谢谢,这就是我真正需要的。我不知道如何在 google 上使用这种查询来访问包含有关此“DOCUMENT_ROOT”索引变量的文章。非常感谢。
猜你喜欢
  • 2019-08-01
  • 2015-02-23
  • 2015-01-15
  • 2013-05-29
  • 2022-09-30
  • 1970-01-01
  • 2018-05-29
  • 1970-01-01
相关资源
最近更新 更多