我的php脚本需要编写文本文件,(实际编写php代码),以便在下次运行时包含它。所以我拥有来自previus运行的所有数据(数组),不使用数据库。 这些文件保存在网络驱动器(SAN)上。
该脚本每秒运行3-4次(大约每300毫秒),文件大小为1.2 MB(大约)
有时文件已损坏,缺少文件结束(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,结果相同。 有关于此的任何建议吗?
利亚
答案 0 :(得分:0)
可能是PHP脚本在用户需要之前无法完成其写入操作。 尝试在脚本上调用fflush()和fclose()以确保文件正确关闭。
请记住要注意可能阻止PHP正确保存文件的PHP超时/调优问题。双重记住也要删除旧文件,否则你的系统管理员迟早会杀了你......
顺便说一句,恕我直言,这是一种非常难看的做法。 您可以使用会话来保存用户状态和环境(检查session_start)