2013-06-07 41 views
7

Helllo, tôi có một số nội dung do người dùng tạo trên trang web. Tôi muốn loại bỏ các liên kết ra khỏi nó bằng cách sử dụng các hàm php.PHP. Xóa liên kết khỏi chuỗi

Ví dụ tôi có chuỗi sau:.

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

Có một cách đơn giản để phát hiện lời nói, chứa http :, www, .com và để loại bỏ chúng khỏi văn bản? Hoặc là có cách nào khác tốt để làm sạch văn bản từ các liên kết?

Cảm ơn bạn đã dành thời gian!

Trả lời

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

Tôi sẽ kiểm tra điều này – user2331090

+0

Hoạt động tốt cho các URL đơn giản cơ bản. Khi các URL chứa các ký tự đặc biệt như {hoặc}, nó không thành công. Nhưng nó là tuyệt vời cho việc loại bỏ các liên kết thân thiện với SEO. – pkout

5

Ồ, tôi đã tìm thấy câu trả lời.

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