苹果CMS采集图片地址img.php?url=打不开解决方法

2023年12月03日 建站交流 暂无评论 阅读 106 次

苹果CMS采集图片的时候,正常是采集到正常图片的地址,但是个别资源站在提供图片资源的时候做了处理,或者是图床做了处理,如douban豆瓣图床,主要是为了防盗链,这样就会导致采集到的图片地址前加入了/img.php?url=,后面才是真实图片地址,但是这种方式在网站上是无法正常显示图片的,/img.php?url=前面会自动显示当前网站主域名,在苹果CMS后台查看采集资源的图片地址,显示正常,图片地址前并不带/img.php?url=,但是网站源代码里却多了/img.php?url=,通过数据库批量替换图片地址的方法也无法解决不显示的图片的问题,网站源代码图片地址依然自动加入了/img.php?url=,img.php这个文件苹果CMS并没有,所以只能换个思路,让图片地址带/img.php?url=的链接正常显示图片。
具体方法如下:
登录网站目录,新建img.php
填入下面代码

<?php
    $url = $_GET["url"];
    $url = str_replace("https:/","https://",$url);
$dir = pathinfo($url);   //获取图片信息
    $host = $dir['dirname'];  //图片dirname
    $refer = $host.'/';
    $ch = curl_init($url);
    curl_setopt ($ch, CURLOPT_REFERER, $refer);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    $data = curl_exec($ch);
    curl_close($ch);
    $ext = strtolower(substr(strrchr($img,'.'),1,10));
    $types = array(
                'gif'=>'image/gif',
                'jpeg'=>'image/jpeg',
                'jpg'=>'image/jpeg',
                'jpe'=>'image/jpeg',
                'png'=>'image/png',
    );
    $type = $types[$ext] ? $types[$ext] : 'image/jpeg';
    header("Content-type: ".$type);
    echo $data;
?>

给我留言