fwrite只能在PHP中运行一次

时间:2014-07-08 15:00:17

标签: php fwrite

我遇到了将应用程序迁移到新LAMP服务器的奇怪问题。我有一个PHP脚本,每次执行时都会写入多个文件。在遇到很多问题之后,我编写了一些代码来测试fwrite()如何在这台服务器上运行。

以下是我发现的内容:

使用此代码执行脚本时:

$fh=fopen($dir.'/log.txt','w');
fwrite($fh, $log);
f_close($fh);

$fh2=fopen('/tmp/log.txt','w');
fwrite($fh2, $log);
f_close($fh2);

名为log.txt的文件在$dir中创建,但未在/tmp中创建

但是,执行此代码时:

//$fh=fopen($dir.'/log.txt','w');
//fwrite($fh, $log);
//f_close($fh);

$fh2=fopen('/tmp/log.txt','w');
fwrite($fh2, $log);
f_close($fh2);

log.txt文件是在/tmp中创建的(当然,不在$dir中)

我也尝试过其他一些迭代,看起来fwrite()(或者fopen())只在第一次调用时才起作用;它随后被忽略了。

关于为什么会发生这种情况的任何想法或建议?

1 个答案:

答案 0 :(得分:1)

没有功能f_close(),您可能打算使用fclose()

调用未定义的函数会导致致命错误并且脚本终止(永远不会执行第二个块)。

如果打开日志记录/错误显示,您应该能够看到如下错误消息:

Fatal error: Call to undefined function f_close() in script.php on line 123