【发布时间】:2012-10-05 12:45:10
【问题描述】:
根据fopen documentation,在某些模式下,如果文件不存在,它会创建文件,但在我的情况下,我检查了所有的“w”、“w+”、“x”和“x+”模式,但是它只是向我发出警告,它无法创建文件。
这是我的代码:
$this->handle = fopen($this->log_name, 'w');
我得到了什么:
Warning: fopen(D:\xampp\htdocs\farid\logs\error.php) [function.fopen]: failed to open stream: No such file or directory in D:\xampp\htdocs\farid\libraries\error\log.php on line 34
Warning: fwrite() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 66
Warning: fclose() expects parameter 1 to be resource, boolean given in D:\xampp\htdocs\farid\libraries\error\log.php on line 27
我在windows环境下工作。
【问题讨论】:
-
文件权限是最明显的嫌疑人
-
来自同一个文档 - “如果 PHP 决定文件名指定一个本地文件,那么它将尝试在该文件上打开一个流。该文件必须可供 PHP 访问,因此您需要确保文件访问权限允许此访问。如果您启用了安全模式,或者 open_basedir 可能会应用进一步的限制。"
-
你能添加更多代码吗?可能在您当前代码上方的 1-2 行出错了。
-
首先该文件夹必须已经存在。如果是,请确保它是可写的。
-
@anyber 是的,目录存在