【问题标题】:How do create a global visit counter that echoes an image for every visit?如何创建一个全局访问计数器,为每次访问创建一个图像?
【发布时间】:2012-04-17 04:03:30
【问题描述】:

基本上我想创建一个网页的全局访问计数器,然后我想为每次访问显示一个图像。因此,如果有 10 人访问了该页面,则来自服务器的 10 个随机图像将在该页面上回显。当第 11 个访问者到达页面时,将回显一个新的随机图像,依此类推...

所以我真的需要两件事上的帮助 -

  1. 我有一个非常基本的访问计数器,但它只能在会话中使用,我需要它在全球范围内使用吗?
  2. 如何根据访问次数回显图像?

这是我的访问计数器的基本代码:

if(isset($_SESSION['views']))
   $_SESSION['views']=$_SESSION['views']+1;
else
   $_SESSION['views']=1

echo "Page views: ".$_SESSION['views'];

我仍然是 php 的大量初学者,任何帮助将不胜感激:)

谢谢大家。

【问题讨论】:

  • 您不能对会话执行此操作。会话仅对当前访问者(会话)有效。您不能将会话用于唯一计数。你需要一个数据库或一个文本文件或类似的东西。

标签: php image


【解决方案1】:

如果您选择不将数据存储在数据库中,那么这段代码应该很适合您,您所要做的就是找到从 0 到 9 的图像,然后创建名为 counter.txt 的空文本文件并将这段代码放入你的 php 文件在某处

$file = "counter.txt";
$count = file_get_contents($file);
$fh = fopen($file, 'w') or die("ccould not open file");
$content = (int)$count + 1;
fwrite($fh, $content);
fclose($fh);
$counter_array = str_split($content);
foreach($counter_array as $digit){
    echo "<img src='" . $digit . ".gif' />";
}

【讨论】:

    【解决方案2】:

    会话用于全局存储。

    他们只在网站打开之前还活着。

    你应该使用数据库来存储全局变量。


    现在,进入图像显示部分。您可以使用特定于访问次数的数量来命名图像。

    例如:

    4.jpg 将是第四个人的图像

    接下来,你可以像这样使用一个简单的sn-p

    $visitCounter = "?"; //Get the count using a logic
    echo "<img src="$visitCounter.jpg" />"; //Use it to create a image path
    

    【讨论】:

      【解决方案3】:

      $_SESSION 是错误的。

      过去,我会在服务器上读取和写入文本文件。由于羊群问题,这不是最好的方法,但它会给你一些读写文件的经验。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多