帝国CMS远程图片本地化不支持HTTPS 怎么解决?

- 作者:zhy ——来源:原创 ——

用过帝国CMS的人都知道,帝国CMS有一个非常好用的功能,就是远程图片本地化,可以让你发布文章时速度提升10倍。但是用过的人也应该都知道,如果图片的地址是HTTPS的话,就会导致图片本地化失败。那么如果遇到这个问题,我们要怎么才能解决帝国CMS远程图片本地化不支持HTTPS的问题呢?我在处理索比储能网时,是这样处理的。

通过搜索发现网上提供的方法如下,提醒第一种方法修改之后没有什么效果,可以直接跳过去,看下面的临时性解决的办法:

打开文件/e/class/connect.php:第一步:在connect.php文件最上面,<?php下面添加以下函数:

function getHTTPS($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_REFERER, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);    $result = curl_exec($ch);
    curl_close($ch);    return $result;
}

第二步:搜索function ReadFiletext,找到以下函数:

function ReadFiletext($filepath){
    $filepath=trim($filepath);    $htmlfp=@fopen($filepath,"r");    //远程
    if(strstr($filepath,"://"))
    {        while($data=@fread($htmlfp,500000))
        {            $string.=$data;
        }
    }    //本地
    else
    {        $string=@fread($htmlfp,@filesize($filepath));
    }
    @fclose($htmlfp);    return $string;
}

将上面的部分PHP代码换成以下代码:

function ReadFiletext($filepath){
    $filepath=trim($filepath);    $htmlfp=@fopen($filepath,"r");    //远程
    if(strstr($filepath,"https://")){        return getHTTPS($filepath);
    }    if(strstr($filepath,"://"))
    {        while($data=@fread($htmlfp,500000))
        {            $string.=$data;
        }
    }    //本地
    else
    {        $string=@fread($htmlfp,@filesize($filepath));
    }
    @fclose($htmlfp);    return $string;
}

如果你真正的尝试过就会发现,其实到第二步的时候就已经不对了,因为这个function ReadFiletext的内容和你源码中的内容不一致。因此,你即便这么调整之后,仍然没有什么效果。随后我就发现一个常规的问题,正常来说如果https可以访问的话,那么使用http也可以正常访问到图片,一般网站都会做http跳转到https,那么是不是把地址修改成http之后,图片就可以正常下载了呢。尝试之后结果是可以,因此这里只需要搜索function ReadFiletext函数,找到:$filepath=trim($filepath);

//找到函数之后,在这个函数下面添加一个将https替换成http的代码,即可实现https图片下载的效果。当然这种修改方法不能保证每个网站都能有效果
$filepath=trim($filepath);
$filepath=str_replace("https:","http:",$filepath);

好了,以上就是帝国CMS远程图片本地化不支持HTTPS 怎么解决的解决办法,真心希望可以帮助到你。如果你有更多问题可以加入下方的qq群,如果你对储能方面的新闻感兴趣的话,欢迎访问索比储能网。

如果你还有其它疑问可以来本站搜索相关问题,这里会有你想要的答案:火车脚本网

还有什么疑问可以提出来
  • 全部评论(0
    还没有评论,快来抢沙发吧!