phpcms不能保存远程图片怎么办

来源:undefined 2024-12-28 09:34:03 1001

phpcms不能保存远程图片怎么办?

phpcms v9默认情况下只能保存http协议的远程图片,当然,你也可以自己设置是否保存。不知道在哪里设置?后台->内容->模型管理->文章模型-字段管理->content字段-修改,见下图:

言归正传,现在有很多网站为了安全,启用了https协议,从这些网站上复制过来的图片也是https的,这种情况下phpcms是不能够自动保存远程图片的。修改phpcms/libs/classes/attachment.class.php文件中的fillurl函数就可以了,如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

/**

* 补全网址

*

* @paramstring$surl源地址

* @paramstring$absurl相对地址

* @paramstring$basehref网址

* @returnstring网址

* 增加对远程https协议下图片的本地化保存

*/

function fillurl($surl, $absurl, $basehref = ) {

if($basehref != ) {

$preurl = strtolower(substr($surl,0,6));

if($preurl==http:// || $preurl==https:// || $preurl==ftp:// ||$preurl==mms:// || $preurl==rtsp:// || $preurl==thunde || $preurl==emule://|| $preurl==ed2k://)

return  $surl;

else

return $basehref./.$surl;

}

$i = 0;

$dstr = ;

$pstr = ;

$okurl = ;

$pathStep = 0;

$surl = trim($surl);

if($surl==) return ;

$urls = @parse_url(SITE_URL);

$HomeUrl = $urls[host];

$BaseUrlPath = $HomeUrl.$urls[path];

$BaseUrlPath = preg_replace("//([^/]*).(.*)$/",/,$BaseUrlPath);

$BaseUrlPath = preg_replace("//$/",,$BaseUrlPath);

$pos = strpos($surl,#);

if($pos>0) $surl = substr($surl,0,$pos);

if($surl[0]==/) {

$okurl = http://.$HomeUrl./.$surl;

} elseif($surl[0] == .) {

if(strlen($surl)<p>其中https为新增的,原来没有。</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</p><p>PHP中文网,大量的免费<a href="https://www.php.cn/cms/phpcms/" target="_blank">PHPCMS教程</a>,欢迎在线学习!</p>

登录后复制

以上就是phpcms不能保存远程图片怎么办的详细内容,更多请关注php中文网其它相关文章!

最新文章