简单的PHP点击计数器/ if else语句

时间:2011-12-15 20:47:32

标签: php

我正在尝试创建一个点击计数器,一旦达到一定数量(在这种情况下为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];
    }

?>

我做错了什么?

3 个答案:

答案 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](无引号)。

也就是说,如果您不关心并发访问。