2013-06-07 4 views
7

Helllo, 웹 사이트에 사용자가 생성 한 콘텐츠가 있습니다. PHP 함수를 사용하여 링크를 제거하고 싶습니다. 예를 들어PHP. 문자열에서 링크 제거

나는 다음과 같은 문자열이 있습니다.

"text1 http://link1 text2 www.link2 text3 link3.com text4" 

단어를 감지하는 간단한 방법에 http :, WWW를 포함, 거기를 .COM 및 텍스트에서 제거하는 방법? 아니면 링크에서 텍스트를 정리하는 다른 좋은 방법이 있습니까?

감사합니다.

답변

10
$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i"; 
$replacement = ""; 
preg_replace($pattern, $replacement, $string); 
+0

확인해 보겠습니다. – user2331090

+0

기본 단순 URL에 잘 맞습니다. URL에 {또는}와 같은 특수 문자가 포함되어 있으면 실패합니다. 그러나 그것은 SEO 친화적 인 링크 제거에 좋습니다. – pkout

5

아, 답변을 찾았습니다.

function cleaner($url) { 
    $U = explode(' ',$url); 

    $W =array(); 
    foreach ($U as $k => $u) { 
if (stristr($u,'http') || (count(explode('.',$u)) > 1)) { 
    unset($U[$k]); 
    return cleaner(implode(' ',$U)); 
} 
} 
    return implode(' ',$U); 
} 

$url = "Here is another funny site www.tinyurl.com/55555 and http://www.tinyurl.com/55555 and img.hostingsite.com/badpic.jpg"; 
echo "Cleaned: " . cleaner($url);