2012-03-18 93 views
0

我在我的網站有這個功能。preg_replace不工作

function autolink($content) { 
    $pattern = "/>>[0-9]/i" ; 
    $replacement = "<a href=\"#$0\">>>$0</a>"; 
    return preg_replace($pattern, $replacement, $content, -1); 

這是爲了使某些字符變成可點擊的超鏈接。

例如,(在一個線程上)當用戶輸入'>> 4'來表示另一個回覆號碼4時,該功能可能是有用的。

但它不工作。字符不會轉換爲超鏈接。他們只是保持純文本。不可點擊。

有人能告訴我什麼是錯誤的功能?

回答

1

所以其目的是轉換:

This is a reference to the >>4 reply 

...到:

This is a reference to the <a href="#4">&gt;&gt;4</a> reply 

...其中 「& GT;」是「>」的HTML UTF-8等效項。 (請記住,您不想創建HTML問題)

問題:(1)您忘記在替換項(2)中轉義引號,因爲您要分隔數字,所以需要使用括號來創建一個子模式供以後參考。

一旦你這樣做,你到達:

function autolink($contents) { 
    return preg_replace("/>>([0-9])/i", 
         "<a href=\"#$1\">&gt;&gt;$1</a>", 
         $contents, 
         -1 
         ); 
} 

好運

+0

謝謝!它有幫助。 – Visualizer7 2012-03-18 07:39:40