标点符(钱魏 Way)

PHP自动保存文章中的外部图片

对于一些转载性质或采集性质的网站,因为外链图片有可能被来源网站删除或出现防盗链的情况,有的时候站长期望把文章中的外联图片都保存到本地空间里。解决办法是在原有的系统中添加一个PHP自动保存文章中外部图片的功能。

首先我们想到的是可以通过正则匹配来寻找文章中所有的img标签,这个表达式需要可以匹配跨行的img标签,并且需要对img标签做条件判断允许img标签带有其他属性.解决方案是使用preg_replace_callback() 这个函数。

 为了完成外部图片的链接过滤及图片的本地保存,定义filter_image_call()。

最后,定义获取图片的函数,也可以使用discuz中的dfopen函数

另外中间会用到的还有生成指点数目的随机字符串:

整个方法如上,高手可以将上述修改为 WordPress插件,Discuz插件,PHPWind插件等。

码字很辛苦,转载请注明来自标点符《PHP自动保存文章中的外部图片》

评论

  1. nick #1

    我想这里的正则表达式的flag不需要s和m吧

    [^/]已包括了换行符 所以不需要s

    正则表达式未用到^和$,所以也不需要m吧

    请指正

    回复
    2012-02-18