Php preg_match和带有url和image标签的preg_replace文本

时间:2017-02-03 09:57:52

标签: php url preg-replace preg-match

我正在研究一些代码,而且我已经做了足够的工作来实现目标。我想替换该文本正文中的图像网址和网络链接。

E.G“这是我的文字http://www.google.com和一些图片http://www.somewebimage.png

替换为“这是我的文字<a href="http://www.google.com">http://www.google.com</a>和一些图片<img src="http://www.somewebimage.png">

我的hack让我替换url(s)或img链接但不是两个。因为订单而被覆盖了

$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
$reg_exImg = '/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?(jpg|png|gif|jpeg)/';
$post = "This is my text with http://www.google.com and some image http://www.somewebimage.png";

if(preg_match($reg_exImg, $post, $img)) {
    $img_post =  preg_replace($reg_exImg, "<img src=".$img[0]." width='300' style='float: right;'> ", $post);
} else {
    $img_post = $post;
}
if(preg_match($reg_exUrl, $post, $url)) {
    $img_post =  preg_replace($reg_exUrl, "<a href=".$url[0]." target='_blank'>{$url[0]}</a> ", $post);
} else {
    $img_post = $post;
}

如果我阻止了$ reg_exUrl代码块,我会得到图片链接,如果它运行了我得到了url链接。

1 个答案:

答案 0 :(得分:0)

你可以一次性完成,你的两个模式非常相似,并且很容易构建一个处理这两种情况的模式。使用public static void createEndUsers(Zendesk zd){ for(Organization org : zd.getOrganizations()){ List<User> usersList = getUsersPerOrg(org, 0) JobStatus js = zd.createUsers(usersList); List<T> resultElements = js.getResults(); } } ,您可以在回调函数中选择替换字符串:

preg_replace_callback