1

编辑:

我想计算一个网页加载了多少次,每次加载时,我想更新一个图像(这是一个 jpg 文件)以显示页面加载的次数。我知道如何更新图像并将其转换为 jpg,但我想弄清楚的是如何“收听”页面加载。此页面在我的服务器之外...我无法访问它...只是一个随机网页。

我应该使用什么方法?

这就是我所希望的:

<?php
   if (webpagevisited('www.stackoverflow.com')) //this would be the function
       {
         increase_hit_counter_by_one();
       }

我创建了函数 increase_hit_counter_by_one()。它使用 mySQL 数据库来更新值并过滤重复的 IP 地址。什么方法最适合创建webpagevisited() 函数?

4

2 回答 2

1

我认为你最好的选择是$referrer = $_SERVER['HTTP_REFERER'];

这应该向您显示加载图像的网页,但也可以通过 CURL 甚至虚假标题很容易地进行欺骗。

此外,计数不会存储在该页面上,因为$count每次加载图像时都会重置。

您将需要某种数据库来存储/更新命中。

于 2013-04-30T08:52:39.047 回答
0

编辑 - 在您编辑答案并发表评论后,您可以使用简单的 .htaccess(我假设您使用启用了 mod 重写的 apache)重写来修改 URL。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^image_counter.jpg$ image.php [L]
</IfModule>

假设 .htaccess 与您的 image.php 脚本一起位于根 Web 目录中,现在您可以使用<img src="http://www.yourwebsite.com/image_conter.jpg" alt="" />并且 htaccess 应该将 url 重写为您的脚本。查看 apache 网站以获取有关 htaccess 规则的更多信息。

然后,您可以使用$_SERVER['HTTP_REFERER']您正在计算的特定 URL 进行测试。

最后根据需要提供图像,例如。

header('Content-Type: image/jpeg'); //or other correct mime type
//output image you created

您需要将“计数”存储在数据库或类似的存储选项中才能持久保存计数变量,正如 Dom 正确指出的那样,每次加载页面时都会重置它。

我推荐的最简单的选择是将您的图像 src 作为您的 php 文件,例如。

<img src="image.php" alt="Hit Counter" />

然后在您的 image.php 文件中,您可以检索存储的计数,可能使用 Mysql,并将其递增一并保存新计数。然后,您可以根据需要在图像中显示您的计数。

例如这样的事情:

<?php
//get saved count here as $count
$count++;
//save new count
//create image using count and present it.
?>
于 2013-04-30T09:15:57.747 回答