一个正则的问题

2013-04-19 10:56:54 +08:00
 GASALA
在wordpress中想实现发布文章贴图片网址就直接显示图片,参照网上的代码写了一段这样的,没效果。

function embed_images($content){$embed_images = preg_replace_callback('/((^http[s]{0,1}:)\/\/(.+).(gif|jpg|bmp|png))/i', "addimg",$content);return $embed_images;}

function addimg($url){global $post;$title = $post ->post_title;$imgurl = preg_replace('/((^http[s]{0,1}:)\/\/(.+).(gif|jpg|bmp|png))/i', '<img src="$1" alt="'.$title.'" />',$url[0]);if($imgurl !== $url[0]){return $imgurl;}}}add_filter(the_content', 'embed_images');

但是改成下面的就可以显示图片了(相比上面的只替换了第一段的正则),不过这个同时把正文的网址链接也直接去掉了。怎样能显示图片,但是不要删除链接呢?求解。。。

function embed_images($content){$embed_images = preg_replace_callback('/https?:\/\/([A-z0-9]+[_\-]?[A-z0-9]+\.)*[A-z0-9]+\-?[A-z0-9]+\.[A-z]{2,}(\/.*)*\/?/i', "addimg",$content);return $embed_images;}

function addimg($url){global $post;$title = $post ->post_title;$imgurl = preg_replace('/((^http[s]{0,1}:)\/\/(.+).(gif|jpg|bmp|png))/i', '<img src="$1" alt="'.$title.'" />',$url[0]);if($imgurl !== $url[0]){return $imgurl;}}}add_filter(the_content', 'embed_images');
2348 次点击
所在节点    问与答
7 条回复
ljbha007
2013-04-19 11:11:25 +08:00
下次最好贴gist 这代码没缩进看着真心累

把第二个函数里边的正则替换改一下就好了

https://gist.github.com/CarlLee/5417857
ljbha007
2013-04-19 11:18:12 +08:00
ljbha007
2013-04-19 11:18:23 +08:00
贴个gist真麻烦!!
GASALA
2013-04-19 11:39:33 +08:00
@ljbha007 抱歉哦,因为之前贴gist也是只能出来网址。

刚试了一下,还是不行哦,其它除了图片地址之外的的网址还是被清除了。包括链接,视频链接。
ljbha007
2013-04-19 11:49:03 +08:00
@GASALA 你是这个意思啊
又改了一下 这下没问题了

http://gist.github.com/5417857
ljbha007
2013-04-19 12:02:39 +08:00
又写了个更简单的版本

http://gist.github.com/5418071
GASALA
2013-04-19 12:09:43 +08:00
@ljbha007 哇塞。厉害,没有任何问题。非常感谢^_^

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/66289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX