我正在尝试创建一个日志文件,但该文件使用相同的字符串写入两次。我该怎么做才能避免这种行为?
$file = 'newfile.txt';
$current = file_get_contents($file);
$current = time()."\n";
file_put_contents($file, $current, FILE_APPEND | LOCK_EX);
/* output
1471958308
1471958308
1471958312
1471958312
1471958734
1471958734
*/
答案 0 :(得分:1)
因为您正在使用FILE_APPEND,它将添加到文件末尾$current
中的任何内容,您只需执行此操作
<?php
$file = 'newfile.txt';
$current = time()."\n";
file_put_contents($file, $current, FILE_APPEND | LOCK_EX);
尽管使用您的代码,但我没有为此行重复数据
$current = time()."\n";
将使用此语句覆盖您从文件中读取的任何内容
$current = file_get_contents($file);
反正
如果我在.=
=
而不是$current .= time()."\n";
,那么我说你得到的重复的唯一方法就是
$file = 'newfile.txt';
$current = file_get_contents($file);
$current .= time()."\n"; //<- not the .=
file_put_contents($file, $current, FILE_APPEND | LOCK_EX);
答案 1 :(得分:0)
我现在使用的脚本是:
$file = 'newfile.txt';
$current = time()."\n";
file_put_contents($file, $current, FILE_APPEND | LOCK_EX);
如果我在命令行中使用(lynx -dump http://dev.test/index.php)运行该文件,则运行浏览器(chrome)后的cod ...这是输出:
1472044823
1472044856
1472044856
总结当我通过chrome运行代码时......时间戳被添加两次......为什么?