0

我的 php 脚本需要编写文本文件(实际上是编写 php 代码),以便在下次运行时包含它。所以我有之前运行的所有数据(数组),没有使用数据库。这些文件保存在网络驱动器 (SAN) 上。

该脚本每秒运行 3-4 次(大约每 300 毫秒),文件大小为 1.2 MB(大约)

有时文件已损坏,缺少 END OF FILE (EOF)

有时我会收到垃圾文本(重复部分字符串)

例如。

$write_string = '$arrMK[1][1]=1.80;$arrMK[1][2]=1.82;$arrMK[1][3]=2.14;$arrMK[1][4]=1.80;$arrMK[2][1]=2.43;$arrMK[2][2]=1.13;$arrMK[2][3]=1.33;$arrMK[2][4]=4.11;... and so on...';

文件内容如下(粗体为重复部分):

$arrMK[1][<strong>1]=1.80;$arrMK[1][2]</strong>=1.82;$arrMK[1][3]=2.14;$arrMK[1][4]=1.80;$arrMK[2][1]=2.43;$arrMK[2][2]=1.13;$ar<strong>1]=1.80;$arrMK[1][2]</strong>rMK[2][3]=1.33;$arrMK[2][4]=4.11;

如果文件大小小于 1 MB,则一切正常。

我尝试使用fopen/fwrite, file_put_contents,结果相同。对此有何建议?

埃利亚斯

4

1 回答 1

0

可能是 PHP 脚本在您的用户需要它之前无法完成其写入操作。尝试在您的脚本上调用 fflush() 和 fclose() 以确保您的文件已正确关闭。

请记住注意可能阻止 PHP 正确保存文件的 PHP 超时/调整问题。请记住也要删除旧文件,否则您的系统管理员迟早会杀死您...

顺便说一句,恕我直言,这是一种非常丑陋的做法。您可以使用会话来保存用户状态和环境(检查session_start

于 2013-06-10T13:58:22.853 回答