2012-11-28 61 views
3

基本上我試圖將xenforo的論壇腳本數據庫轉換爲我自定義的一個(放棄我在xenforo上的使用)並且他們的bbcode令人討厭。用這個bbcode替換這個bbcode

我試圖改變所有的URL設置高亮,從他們的這種挖掘:

$message = preg_replace("/\[url\=\'(.+?)\'\](.+?)\[\/url\]/is", 
         "[url=$1]$2[/url]", $message); 

他們基本上都圍繞我不想讓他們的URL單引號,但我的代碼不能正常工作。

+0

請顯示輸入示例。 –

回答

1

如果使用雙引號爲您的正則表達式的字符串,必須用雙逃逸,因爲PHP解釋反斜槓以及

$message = preg_replace("/\\[url='(.+?)'\\](.+?)\\[\\/url\\]/is", 
         "[url=$1]$2[/url]", $message); 

測試用例

<?php 
$message = "[url='http://www.example.com/test']My test URL[/url]"; 
$message = preg_replace("/\\[url='(.+?)'\\](.+?)\\[\\/url\\]/is", 
         "[url=$1]$2[/url]", $message); 
echo "$message\n"; 

,其輸出

[url=http://www.example.com/test]My test URL[/url]

測試在Ubuntu 12.04和PHP 5.3.10上完成。

+0

這不起作用 解析錯誤:語法錯誤,意想不到的'('in /home/gamingon/public_html/prxa.info/xenforo_convert.php on line 65 – NaughtySquid

+0

@LiamDawe查看更新的答案。所以,肯定有錯誤的地方其他 –

+0

當多於一個時會起作用嗎?也許這就是我的問題 – NaughtySquid