我了解像素跟踪的基础知识,我能够将跟踪域中引用图像的像素插入其他网站。
但是,如何增加跟踪域上的实际像素数?是否有某种日志告诉我每次提供像素图像?我可以做类似的事情:
<img src="http://www.foo.com/serveImage/getImage.php?id=5123" />
然后有getImage页面,提供图像,并根据传入的id递增?或者有更好的方法来实现这一目标吗?
提前谢谢。
答案 0 :(得分: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);
答案 1 :(得分:3)
是的,你有正确的想法。
您为每个网站或网页指定一个唯一ID,然后在图片src中传递。因此,在您的示例中,ID为5123。
在getImage.php脚本中,然后使用此ID增加数据库(或者记录数据)并返回您想要的任何图像。如果您希望返回的图像显示可以使用GD extention动态创建图像的命中数 - 请参阅PHP手册以获取更多信息。
答案 2 :(得分:3)
这是我的跟踪代码:
<?php
$id = $_GET['site_id'];
// do track
$imageFile = 'images/pixel.jpg';
$im = imagecreatefromjpeg($imageFile);
header('Content-type: image/jpeg');
imagejpeg($im);
?>
答案 3 :(得分:1)
一种切实的答案,但评论的时间太长了:
根据您的实施方式,您不一定需要增加任何内容。如果您的目标是超速运行,那么仅依靠服务器请求日志就足够了。每个请求“getImage.php?q = 5123”都已存在,您只需要从查询字符串中提取相关信息。
您可以稍后将日志解析为一个可查询的数据库(通过cron等人),带外不会影响跟踪错误的提供。一次性完成所有操作都更优雅,但如果您处理了大量请求,那么日志已经存在了。
奖励:服务器日志也有引用和&amp;时间戳,所以你可以更容易地看到有人直接锤击getImage.php或从其他地方链接到游戏数字,如果这些数字是值得的。