首页 > PHP > php 直接输出图片

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脚本,就可以做很多其他的事,这种方式在网站统计、广告系统等广泛应用。



欢迎转载,转载请注明文章出处,谢谢!
垃圾有点差凑合看还不错很精彩 (1 人打了份: 平均分:3.00)
Loading...Loading...
分类: PHP 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

无觅相关文章插件,快速提升流量