跟踪外部网站/外部网站上加载的图像的流量

时间:2013-04-30 08:49:54

标签: php html url

编辑:

我想计算一个网页加载的次数,每次加载时,我想更新一个图像(这是一个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地址。什么方法最好创建webpagevisiited()函数?

2 个答案:

答案 0 :(得分:1)

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

这应该会显示加载图像的网页,但也可以通过CURL甚至假标题轻松欺骗。

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

您需要某种数据库来存储/更新匹配。

答案 1 :(得分:0)

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

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

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

使用$_SERVER['HTTP_REFERER'],您可以针对您正在计算的特定网址进行测试。

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

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

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

我建议最简单的选择是将你的图像src作为你的php文件,例如。

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

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

例如:

<?php
//get saved count here as $count
$count++;
//save new count
//create image using count and present it.
?>