基本上我正在尝试将xenforo的论坛脚本数据库转换为我的自定义脚本数据库(放弃我在xenforo上的使用),他们的bbcode让我烦恼。
我正在尝试将所有url bbcode从他们的更改为我的:
$message = preg_replace("/\[url\=\'(.+?)\'\](.+?)\[\/url\]/is",
"[url=$1]$2[/url]", $message);
基本上他们在我不想要的网址周围有单引号,但我的代码不起作用。
答案 0 :(得分:1)
如果对regexp字符串使用双引号,则必须双重转义,因为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]我的测试网址[/ url]
测试在Ubuntu 12.04和PHP 5.3.10上完成。