我有很多字符串(推特推文),我想從中刪除鏈接,當我回應他們。php:從字符串中刪除URL
我無法控制字符串,即使所有鏈接都以http開頭,它們可以以「/」或「;」結尾。不,也不遵循空間。 此外,有時鏈接和它之前的單詞之間沒有空格。這樣的字符串
一個例子:
The Third Culture: The Frontline of Global Thinkinghttp://is.gd/qFioda;via @edge
我嘗試玩弄了preg_replace,但未能拿出適合所有異常的解決方案:
<?php echo preg_replace("/\http[^)]+\;/","",$feed->itemTitle); ?>
任何想法我應該如何繼續?
編輯:我曾嘗試
<?php echo preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', ' ', $feed->itemTitle); ?>
,但仍然沒有成功。
編輯2:我發現這一個:
<?php echo preg_replace('^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$^',' ', $feed->itemTitle); ?>
其刪除鏈接的預期,但它也刪除整個字符串時,沒有鏈接和它前面的單詞之間的空間。
相關:什麼是最好的正則表達式來檢查一個字符串是否是一個有效的URL?](http://stackoverflow.com/q/161738/1937994) – gronostaj
@DavidThomas對不起:一個錯字!感謝Theftprevention! – Enora
@gronostaj,感謝您的鏈接。我對Php的瞭解非常有限,我正試圖從最高優先級的anser中找到我的出路。 – Enora