6

我了解像素跟踪的基础知识,我能够将引用我的跟踪域上的图像的像素插入到其他网站。

但是,如何增加跟踪域上的实际像素数?每次提供像素图像时,是否有某种日志告诉我?我能做类似的事情吗:

<img src="http://www.foo.com/serveImage/getImage.php?id=5123" />

然后有 getImage 页面,提供图像,并根据传入的 id 递增?还是有更好的方法来实现这一目标?

先感谢您。

4

4 回答 4

13

如果您只想输出 gif,这是一种快速简单的方法,只需确保您的脚本在之前或之后不输出任何其他内容:

header("Content-type: image/gif");
header("Content-length: 43");
$fp = fopen("php://output","wb");
fwrite($fp,"GIF89a\x01\x00\x01\x00\x80\x00\x00\xFF\xFF",15);
fwrite($fp,"\xFF\x00\x00\x00\x21\xF9\x04\x01\x00\x00\x00\x00",12);
fwrite($fp,"\x2C\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02\x02",12);
fwrite($fp,"\x44\x01\x00\x3B",4);
fclose($fp);
于 2010-06-23T17:18:27.660 回答
3

是的,你有正确的想法。

你给每个站点或页面一个唯一的 ID,然后在图像 src 中传递。因此,在您的示例中,ID 是 5123。

然后在您的 getImage.php 脚本中使用此 ID 来增加数据库(或者您记录数据)并返回您想要的任何图像。如果您希望返回的图像显示点击次数,您可以使用GD 扩展动态创建图像- 有关更多信息,请参阅 PHP 手册。

于 2009-07-24T00:13:34.047 回答
3

这是我的跟踪代码:

<?php

$id = $_GET['site_id'];

// do track

$imageFile = 'images/pixel.jpg';
$im = imagecreatefromjpeg($imageFile);
header('Content-type: image/jpeg');
imagejpeg($im);


?>
于 2009-07-24T02:06:29.300 回答
1

有点切题的答案,但评论太长了:

您不一定需要增加任何内容,具体取决于您如何实现它。如果你的目标是让它超快,仅仅依靠服务器请求日志就足够了。“getImage.php?q=5123”的每个请求都已经存在,您只需从查询字符串中提取相关信息。

您可以稍后将日志解析到一个很好的、可查询的数据库中(通过 cron 等),带外它不会影响提供跟踪错误。一次性完成这一切会更优雅一些,但如果您要处理大量请求,那么无论如何日志都已经存在了。

奖励:服务器日志也有引用者和时间戳,因此您可以更轻松地查看是否有人直接敲击 getImage.php 或从其他地方链接到它以玩弄数字,如果这些数字值得的话。

于 2010-08-09T18:02:52.227 回答