我正在尝试创建一个点击计数器,一旦达到一定数量(在这种情况下为5),它将不再显示点击量。这是我的代码:
<?php
$count = ("hits.txt");
$hits = file($count);
$hits[0] ++;
$fp = fopen($count , "w");
fputs($fp , "$hits[0]");
fclose($fp);
if ($hits > 5) {
echo "More than 5 hits";
}
else {
echo $hits[0];
}
?>
我做错了什么?
答案 0 :(得分:6)
你太复杂了。这样做会容易得多:
$hits = file_get_contents('hits.txt');
++$hits;
file_put_contents('hits.txt', $hits);
if($hits > 5) {
echo 'Over 5!';
}
// else etc
至于您当前的代码,问题是您没有使用正确的$hits[0]
语法测试点击次数 - 您已经在fputs
中使用了 - 而是使用了错误{ {1}}而是。请记住,由于file
的工作方式,$hits
本身就是一个数组。 PHP很乐意让你把一个数组与一个整数进行比较,并且有rules that define how the comparison works,但不要去那里。
答案 1 :(得分:3)
您需要$hits[0] > 5
:
if ($hits[0] > 5) {
echo "More than 5 hits";
}
将数字值$hits
与数字5进行比较时,将其作为字符串Array
进行比较,而不是数组第一项的值。字符串Array
始终大于5。
答案 2 :(得分:0)
或多或少的一切。除了其他答案,
fputs($fp , "$hits[0]");
无法按预期工作,您需要"{$hits[0]}"
或$hits[0]
(无引号)。
也就是说,如果您不关心并发访问。