2012-11-29 31 views
0

我在PHP中使用preg_replace。當我使用此代碼行:

echo nl2br(preg_replace("(http://.+) ", "<a href='$1'>[link]</a>", $row['description'])); 

呼應"<a href=''>[link]</a>". 這裏是「說明」:http://www.youtube.com/watch?v=JDrnz8ZZtUE
有什麼不對呢? (我在描述中也包含空格)

+2

您的正則表達式缺少分隔符。 –

+2

你的正則表達式缺少分隔符'/(http:\/\// +)/'或'|(http://.+)|' –

回答

4

那是因爲你沒有指定分隔符。 PHP將假定()爲分隔符,從而消除您的捕獲組。

"~(http://.+)~" 
+0

是的,這個工程! – gskartwii

0

您沒有任何分隔符。下面是語法:

$pattern = '/(\w+) (\d+), (\d+)/i'; 

嘗試做這樣的:

echo nl2br(preg_replace("/(http://.+)/", "<a href='$1'>[link]</a>", $row['description'])); 
+0

你從哪裏找到這個語法?如果使用'/'作爲分隔符,則需要將其轉義到模式本身('http:\/\ /')中。 –

+0

剛剛從這裏得到它:http://php.net/manual/fr/function.preg-replace.php 伯爾你是對的逃跑,對不起 – Kai23

相關問題