php 直接输出图片
2013年1月10日
没有评论
前段时间看 google analytics 移动版,发现可以直接通过php来输出一个1×1像素的图片。以前的我的做法是php中执行了处理逻辑后,然后通过header 进行一个 302 转跳到一个已有的图片上,看来是多此一举了。下面是图片输出的示例代码:
<?php function writeGifData() { $GIF_DATA = array( chr(0x47),chr(0x49),chr(0x46),chr(0x38),chr(0x39),chr(0x61), chr(0x01),chr(0x00),chr(0x01),chr(0x00),chr(0x80),chr(0xff), chr(0x00),chr(0xff),chr(0xff),chr(0xff),chr(0x00),chr(0x00), chr(0x00),chr(0x2c),chr(0x00),chr(0x00),chr(0x00),chr(0x00), chr(0x01),chr(0x00),chr(0x01),chr(0x00),chr(0x00),chr(0x02), chr(0x02),chr(0x44),chr(0x01),chr(0x00),chr(0x3b) ); header("Content-Type: image/gif"); header("Cache-Control: " . "private, no-cache, no-cache=Set-Cookie, proxy-revalidate"); header("Pragma: no-cache"); header("Expires: Wed, 17 Sep 1975 21:32:10 GMT"); echo join($GIF_DATA); exit; } writeGifData(); ?>
受到启示,也可以通过下面的方式来输出图片
<?php function writeGifData() { //服务器图片真实路径 $file = dirname(__FILE__) . '/1x1.gif'; readfile($file); exit; } writeGifData(); ?>
另外,如果觉得.php作为图片的扩展名不好看,可以在服务器上通过urlrewrite来改造一下,这样用户看到的是图片扩展名,但是服务器真是处理的是一个php脚本,既然是php脚本,就可以做很多其他的事,这种方式在网站统计、广告系统等广泛应用。