2011-03-28 105 views
0

我使用preg_replace自動在段落中插入HTML鏈接。帶網址問題的preg_replace

這是我目前使用:

$pattern = "~(?!(?:[^<\[]+[>\]]|[^>\]]+<\/a>))(".preg_quote($find_keyword, '/').")\b~msUi"; 
$replacement = "<a href=\"http://$kw_url\" title=\"$find_keyword\">\$0</a>"; 
$article_content = preg_replace($pattern, $replacement, stripslashes($article_content), 1, $added); 

它的偉大工程,除1個問題:

不匹配,如果關鍵字是替換URL。

如果:$find_keyword="http://www.mysite.com/"即使它在內容中也不會出現任何匹配。

我已經嘗試使用preg_quote轉義$ find_keyword,它沒有任何區別。

任何正則表達式專家都知道一個解決方案嗎?謝謝。

+0

我已經嘗試過逃跑斜槓運行find_keyword,它沒有做任何的不同。 – Ricky 2011-03-28 19:43:05

+2

如果您通過preg_quote()傳遞$ find_keyword會發生什麼情況(您應該將所有輸入都轉換爲正則表達式)? – 2011-03-28 19:45:21

+0

您是否想過鏈接到http://example.com/的用戶'? – Incognito 2011-03-28 19:46:01

回答

1

您的$ find_keywords中的正斜槓不會被轉義,這正在打破模式。

+0

閱讀 – Ricky 2011-03-28 20:12:55