首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP - fwrite()会立即保存文件吗?

PHP - fwrite()会立即保存文件吗?
EN

Stack Overflow用户
提问于 2010-07-01 17:19:12
回答 4查看 6.8K关注 0票数 11

这是我的代码:

代码语言:javascript
复制
$zplHandle = fopen($target_file,'w');
fwrite($zplHandle, $zplBlock01);
fwrite($zplHandle, $zplBlock02);
fwrite($zplHandle, $zplBlock03);
fclose($zplHandle);

何时保存该文件?它是在写入之后立即还是在关闭它之后?

我之所以这样问,是因为我让Printfil监听文件夹中的文件,并打印任何新创建的文件。如果PHP在fwrite之后立即提交保存,我可能会遇到Printfil没有捕获后续写入的问题。

谢谢你的帮助。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-01 17:45:35

我编写了一小段代码来测试它,似乎在fwrite之后,新的内容将被立即检测到,而不是在fclose之后。

这是我在Linux上的测试。

代码语言:javascript
复制
#!/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标记同时显示新内容。

票数 5
EN

Stack Overflow用户

发布于 2010-07-01 17:23:00

PHP可能会也可能不会立即写入内容。中间有一个缓存层。您可以使用fflush()强制它写入,但除非只使用一个fwrite(),否则不能强制它等待。

票数 12
EN

Stack Overflow用户

发布于 2010-07-01 17:22:34

该文件将保存在fclose上。如果您想在此之前将内容放入文件,请使用fflush()

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3156464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档