这是我的代码:
$zplHandle = fopen($target_file,'w');
fwrite($zplHandle, $zplBlock01);
fwrite($zplHandle, $zplBlock02);
fwrite($zplHandle, $zplBlock03);
fclose($zplHandle);何时保存该文件?它是在写入之后立即还是在关闭它之后?
我之所以这样问,是因为我让Printfil监听文件夹中的文件,并打印任何新创建的文件。如果PHP在fwrite之后立即提交保存,我可能会遇到Printfil没有捕获后续写入的问题。
谢谢你的帮助。
发布于 2010-07-01 17:45:35
我编写了一小段代码来测试它,似乎在fwrite之后,新的内容将被立即检测到,而不是在fclose之后。
这是我在Linux上的测试。
#!/usr/bin/env php
<?php
$f = fopen("file.txt","a+");
for($i=0;$i<10;$i++)
{
sleep(1);
fwrite($f,"something\n");
echo $i," write ...\n";
}
fclose($f);
echo "stop write";
?>运行PHP脚本后,我使用tail -f file.txt来检测新的输出,它与php的content.And标记同时显示新内容。
发布于 2010-07-01 17:23:00
PHP可能会也可能不会立即写入内容。中间有一个缓存层。您可以使用fflush()强制它写入,但除非只使用一个fwrite(),否则不能强制它等待。
发布于 2010-07-01 17:22:34
该文件将保存在fclose上。如果您想在此之前将内容放入文件,请使用fflush()。
https://stackoverflow.com/questions/3156464
复制相似问题