我正在构建一个基本的分析服务,理论上基于Google Analytics的工作原理,但是我不是请求实际图像,而是将图像请求路由到接受数据然后输出图像的脚本。因为浏览器将在每次加载时请求此图像,所以每毫秒都很重要。
我正在寻找一种最有效的方式,让文件从PHP脚本输出gif文件。到目前为止,我已经确定了3种主要方法。
是否有更有效的方法可以从PHP脚本中输出1x1 GIF文件?如果没有,其中哪一个是最有效和可扩展的?
三种确定的方法
PHP图像构建库
我的直觉是base64会更快,但我不知道这个函数需要多少资源;而且file_get_contents可能扩展性不太好,因为它增加了另一个文件系统动作。
参考一下,我正在使用的GIF图像在这里:http://i.stack.imgur.com/LQ1CR.gif 编辑
所以,我提供这张图片的原因是,我的分析库构建一个查询字符串并将其附加到此图像请求中。我不想解析日志,所以将请求路由到一个处理数据并响应图像的PHP脚本中,以便最终用户的浏览器不会挂起或抛出错误。我的问题是,在脚本的限制下,如何最好地服务于那个图像?
我正在寻找一种最有效的方式,让文件从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
the image
header('Content-Type: image/gif');
echo base64_decode("R0lGODdhAQABAIAAAPxqbAAAACwAAAAAAQABAAACAkQBADs=");
我的直觉是base64会更快,但我不知道这个函数需要多少资源;而且file_get_contents可能扩展性不太好,因为它增加了另一个文件系统动作。
参考一下,我正在使用的GIF图像在这里:http://i.stack.imgur.com/LQ1CR.gif 编辑
所以,我提供这张图片的原因是,我的分析库构建一个查询字符串并将其附加到此图像请求中。我不想解析日志,所以将请求路由到一个处理数据并响应图像的PHP脚本中,以便最终用户的浏览器不会挂起或抛出错误。我的问题是,在脚本的限制下,如何最好地服务于那个图像?