首页 > 开发 > php > 正文

php脚本下载的图片打不开

2017-09-06 15:06:41  来源:网友分享
<?php/** * 抓取远程图片 * * @param string $url 远程图片路径 * @param string $filename 本地存储文件名 */function grabImage($url, $filename = '') {    if($url == '') {        return false; //如果 $url 为空则返回 false;    }    $ext_name = strrchr($url, '.'); //获取图片的扩展名    if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {        return false; //格式不在允许的范围    }    if($filename == '') {        $filename = time().$ext_name; //以时间戳另起名    }    //开始捕获    ob_start();    readfile($url);    $img_data = ob_get_contents();    ob_end_clean();    $size = strlen($img_data);    $local_file = fopen($filename , 'a');    fwrite($local_file, $img_data);    fclose($local_file);    return $filename;}echo	grabImage("http://t1.baidu.com/it/u=1504295979,283866738&fm=52&gp=0.jpg");?>

上述的代码感觉没有问题,别人也测试过,但是我下载下来,图片文件为什么打不开,蛋疼,坐等贵人解救!

解决方案

url错误了。这种写法要抓取静态路径图片。
并且http://t1.baidu.com/it/u=1504295979,2... 也不是个图片地址。或者是有访问限制的地址,本地直接访问无权限。
你可以打印$image_data变量看看

一个对的有访问权限的路径就无问题了。
grabImage("http://s.segmentfault.com/img/logo.pn...);