прег заменить все ссылки - PullRequest
       9

прег заменить все ссылки

0 голосов
/ 17 февраля 2010
$text = "Clip - http://depositfiles.com/files/8b5560fne Mp3 - 
    http://letitbit.net/download/4920.adaf494fbe2b15c34a4733f20/Madonna___The_Power_Of_Good_Bye.mp3.html 
    Madonna - The power of goodbye Your heart is not open, so I must go The spell has been broken...I 
    loved you so Freedom comes when you learn to let go Creation comes when you learn to say no You were 
    my lesson I had to learn I was your fortress you had to burn Pain is a warning that something's wrong 
    I pray to God that it won't be long Do ya wanna go higher? Chorus: There's nothing left to try 
    There's no place left to hide There's no greater power than the power of good-bye Your heart is not 
    open, so I must go The spell has been broken...I loved you so You were my lesson I had to learn I was 
    your fortress Chorus: There's nothing left to lose There's no more heart to bruise There's no greater 
    power than the power of good-bye Bridge: Learn to say good-bye I yearn to say good-bye Chorus: There's 
    nothing left to try There's no more places to hide There's no greater power than the power of good-bye 
    There's nothing left to lose There's no more heart to bruise There's no greater power than the power 
    of good-bye";

Как мне в этом тексте полностью обрезать все ссылки?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2010

Вы можете попробовать что-то простое, как это:

$text = preg_replace("#\S+://\S+#", "", $text);

Тем не менее, в результирующей строке останутся двойные пробелы. Вы можете справиться с этим, но это будет немного сложнее. Я также не проверяю, является ли удаленный текст действительными URL. Все, что содержит: // удаляется.

1 голос
/ 17 февраля 2010

Наивный подход:

preg_replace('/http[^\s]+/', "", $str)

Заменяет любую строку, которая начинается с "http" и состоит из непробельных символов, на пустую строку.

Это предполагает, что вы получаете только http. В остальном чуть менее наивно (но все же в основном наивно):

preg_replace('#[a-z]+://[^\s]+#', "", $str)
...