我遇到了将应用程序迁移到新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()
)只在第一次调用时才起作用;它随后被忽略了。
关于为什么会发生这种情况的任何想法或建议?
答案 0 :(得分:1)
没有功能f_close()
,您可能打算使用fclose()
。
调用未定义的函数会导致致命错误并且脚本终止(永远不会执行第二个块)。
如果打开日志记录/错误显示,您应该能够看到如下错误消息:
Fatal error: Call to undefined function f_close() in script.php on line 123