简单PHP命中计数器递增2?
我为一个网络应用做了一个点击计数器,但我不明白为什么它会增加两个。我只需从hitCount.txt文件中设置一个计数器变量,该文件包含一个整数,并将预先递增的值写回该文件 有关守则:简单PHP命中计数器递增2?,php,increment,hitcounter,Php,Increment,Hitcounter,我为一个网络应用做了一个点击计数器,但我不明白为什么它会增加两个。我只需从hitCount.txt文件中设置一个计数器变量,该文件包含一个整数,并将预先递增的值写回该文件 有关守则: // get visit count $wag_file = "hitCount.txt"; $fh = fopen($wag_file, 'r+'); $wag_visit_count = intval(file_get_contents($wag_file)); // i
// get visit count
$wag_file = "hitCount.txt";
$fh = fopen($wag_file, 'r+');
$wag_visit_count = intval(file_get_contents($wag_file));
// increment, rewrite, and display visit count
fputs($fh, ++$wag_visit_count);
fclose($fh);
echo $wag_visit_count . $html_br;
我认为最合乎逻辑的解释是PHP脚本被调用了两次 查看一下浏览器所称的内容,例如使用的“网络”选项卡
一个典型的例子是<代码>:浏览器将考虑空<代码> Src < /Co>点到当前页面,并重新加载当前URL。
作为旁注:与读取文件然后再写回文件不同,您应该以读/写模式打开并锁定文件,以避免并发写入--请参阅
基本上,因为您已经在r+模式下打开了文件,所以应该使用类似于读取文件的东西,而不是
file\u get\u contents()
我认为最合理的解释是PHP脚本被调用了两次
查看一下浏览器所称的内容,例如使用的“网络”选项卡
一个典型的例子是<代码>:浏览器将考虑空<代码> Src < /Co>点到当前页面,并重新加载当前URL。
作为旁注:与读取文件然后再写回文件不同,您应该以读/写模式打开并锁定文件,以避免并发写入--请参阅
基本上,由于您已经在r+模式下打开文件,您应该使用类似于读取文件的东西,而不是
file\u get\u contents()
尝试使用intval(trim(file\u get\u contents($wag\u file)))
我见过其他人使用trim作为规则,但我不确定是否有必要,如果这是唯一写入它的东西,并且没有写入空格。传统的想法是什么?intval
忽略空格(包括\r\n\t)以及数字后面的任何尾随垃圾或空格。所以你通常不需要trim
@mario:好消息。。。我不知道我总是使用(type)
来投射值。。。也许我应该重新考虑一下:-)尝试使用intval(trim(file\u get\u contents($wag\u file))
我见过其他人使用trim作为规则,但我不确定是否有必要,如果这是唯一写入它的东西,并且没有写入空格。传统的想法是什么?intval
忽略空格(包括\r\n\t)以及数字后面的任何尾随垃圾或空格。所以你通常不需要trim
@mario:好消息。。。我不知道我总是使用(type)
来投射值。。。也许我应该重新考虑一下:-)谢谢。我会回去让它更结实。需要把文件存在的检查,太。啊,很好的捕捉!我将它粘贴到一个带有错误CSS链接的测试php模板中。现在修好了,谢谢。我会回去让它更结实。需要把文件存在的检查,太。啊,很好的捕捉!我将它粘贴到一个带有错误CSS链接的测试php模板中。现在修好了。