2014-09-29 72 views
-1

我想删除第一个之前的所有文本,使用http或只是www,我希望URL也被删除。看这个例子。删除字符串之前的所有文本并包含url

$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

'。*'.......... – 2014-09-29 17:07:27

回答

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); 
+0

谢谢你的回答。你也知道我怎么可以替换的网址,只是如果是在字符串的前10个字? – Alex 2014-09-29 17:13:41

+0

对于正则表达式很困难,因为它编写了一个简单的函数,它将$ str拆分为'',并检查前10个元素中是否存在链接,如果为true,则仅触发preg_replace。 – BojanT 2014-09-29 17:19:09

相关问题