删除字符串中包含url之前的所有文本

时间:2014-09-29 17:02:21

标签: php

我想删除第一个网址之前的所有文字,只需要http或只是www,我也想删除网址。看这个例子。

$str = 'some text bla bla http://www.blabla.com this is another text';
$new_str = magic_function($str);
$new_str = 'this is another text';

使用这个preg_replace我可以替换一个url(一个是http,一个没有)

$string = preg_replace('|https?://www\.[a-z\.0-9/#]+|i', 'url_replace', $string);
$string = preg_replace('|www\.[a-z\.0-9]+|i', 'url_replace', $string);

所以现在我用url_replace替换了url。现在我要删除所有文字,直到并包含' url_replace'。

1 个答案:

答案 0 :(得分:3)

修改您的正则表达式以在链接之前捕获文本,并将所有内容替换为''。

$str = 'some text bla bla http://www.blabla.com this is another text';

$string = preg_replace('|.*https?://www\.[a-z\.0-9/#]+|i', '', $str);
$string = preg_replace('|.*www\.[a-z\.0-9]+|i', '', $string);