帝国cms的远程保存图片,不能紧跟时代。出现了两个问题。 一个问题是,远程图片地址不带扩展名,无法保存;另外一个问题是远程图片地址不带协议,无法保存。 第一个问题,我们前文已经解决。思路是对远程图片地址做一次head请求,根据返回的结果确地图片扩展名。 今天我们来解决第二个问题。比如有图片url地址为: //img2.tgbus.com/i/792_446/cms3.0/2018/0727/20180727161953-1766-87609.jpg
这样的地址无法自动下载到本地,因为帝国判读这不是一个合格的url地址。但是,以前不是,现在是了。那怎么办? 帝国二开助手容易查到,关键的函数是:
帝国二开助手友情提醒:函数DoTranUrl位于文件/e/class/connect.php#//远程保存 中。
//远程保存
function DoTranUrl($url,$classid) 在这个函数里,查找 //处理地址
$url=trim($url); 在其后增加一条语句:
if(substr($url,0,2)=='//')$url='http:'.$url; 保存即可。
我的测试环境是帝国cms7.5+ utf8 ,这样修改后,顺利的远程保存了不带协议的图片。
|