显示 1x1 GIF 的最有效方式(跟踪像素、网络信标)
我正在构建一个基本的分析服务,理论上基于Google Analytics的工作原理,但我没有请求实际图像,而是将图像请求路由到接受数据然后输出图像的脚本。由于浏览器将在每次加载时请求此图像,因此每毫秒都很重要。
我正在寻找从PHP脚本输出gif文件的最有效方法。到目前为止,我已经建立了3种主要方法。
有没有更有效的方法让我从PHP脚本中输出1x1 GIF文件?如果不是,其中哪一个最有效和最具可扩展性?
三种已确定的方法
PHP 图像构建库
$im = imagecreatetruecolor(1, 1);
imagefilledrectangle($im, 0, 0, 0, 0, 0xFb6b6F);
header('Content-Type: image/gif');
imagegif($im);
imagedestroy($im);
file_get_contents
图像从服务器中取出并输出
$im = file_get_contents('raw.gif');
header('Content-Type: image/gif');
echo $im;
base64_decode
图像
header('Content-Type: image/gif');
echo base64_decode("R0lGODdhAQABAIAAAPxqbAAAACwAAAAAAQABAAACAkQBADs=");
(我的直觉是base64会是最快的,但我不知道这个函数的资源密集程度;而且file_get_contents可能会不太好,因为它增加了另一个文件系统操作。
作为参考,我正在使用的GIF在这里:http://i.stack.imgur.com/LQ1CR.gif
编辑
因此,我提供此映像的原因是我的分析库构建了一个查询字符串并将其附加到此映像请求。我没有解析日志,而是将请求路由到PHP脚本,该脚本处理数据并使用图像进行响应,以便最终用户的浏览器不会挂起或引发错误。我的问题是,如何在脚本的范围内最好地提供该图像?