PHP preg_replace多个URL替换

海姆127

嘿,我正在尝试做2 preg_replace:1.make所有url到html链接2.make所有图像url到html img标签

但是这些正则表达式取消了另一个

<?php
// The Regular Expression filter
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$reg_exImg = "!http://[a-z0-9\-\.\/]+\.(?:jpe?g|png|gif)!Ui";

// The Text you want to filter for urls
$text = "The text you want to filter goes here. http://google.comhttp://www.ynet.co.il http://dogsm.files.wordpress.com/2011/12/d7a1d7a7d795d791d799-d793d795.jpg";

// Check if there is a url in the text
    $text = preg_replace($reg_exImg, '<img src=$0 >', $text);
    $text = preg_replace($reg_exUrl, '<a href="$0" rel="nofollow">$0</a>', $text);
    echo $text;
?>

如何使链接网址的preg_replace不会对标签执行此操作?

谢谢。

海姆

不是黑暗的绝对

作为回调可能会更好。

仅使用$reg_exUrl,然后执行以下操作:

$text = preg_replace_callback($reg_exUrl,function($m) {
    if( preg_match("/\.(?:jpe?g|png|gif)$/i",$m[0])) {
        return "<img src='".$m[0]."' />";
    }
    else {
        return "<a href='".$m[0]."' rel='nofollow'>".$m[0]."</a>";
    }
},$text);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP preg_replace:不区分大小写的匹配和区分大小写的替换

来自分类Dev

PHP Preg_replace()模式仅替换适当的文本,而不替换图像alt / src文本

来自分类Dev

使用php preg_replace替换最接近的匹配词

来自分类Dev

php preg_replace用法-

来自分类Dev

PHP复杂preg_replace

来自分类Dev

PHP preg_replace。仅当CD前面没有“-”时,才用CD替换AB。

来自分类Dev

PHP preg_replace HREF

来自分类Dev

PHP preg_replace替换太多

来自分类Dev

php preg_match_all / preg_replace正在截断类似匹配项的替换

来自分类Dev

PHP-替换完全匹配的preg_replace

来自分类Dev

PHP preg_replace URL模式

来自分类Dev

使用preg_replace和FOR循环替换PHP关键字

来自分类Dev

PHP preg_replace仅在特定子字符串之后才替换更多空格

来自分类Dev

PHP:preg_replace函数

来自分类Dev

PHP preg_replace

来自分类Dev

php中的Preg_match / Preg_replace用于匹配模式并在php中替换它

来自分类Dev

如何用preg_replace和PHP替换特殊字符?

来自分类Dev

PHP preg_replace多个链接URL

来自分类Dev

PHP preg_replace HREF

来自分类Dev

将PHP preg_replace转换为Javascript替换

来自分类Dev

PHP preg_replace在不同的位置执行多次替换

来自分类Dev

PHP的preg_replace()函数不会替换所有行

来自分类Dev

PHP preg_replace不替换任何内容

来自分类Dev

PHP:用preg_replace错误地替换了HTML。

来自分类Dev

PHP preg_replace多个替换

来自分类Dev

PHP preg_replace多个单词

来自分类Dev

PHP的条件preg_replace

来自分类Dev

如何用str_replace或preg_replace的php字符串替换单词

来自分类Dev

php preg_replace:替换每个出现的元素(不要分组)