3

基本上,我正在尝试将 xenforo 的论坛脚本数据库转换为我的自定义数据库(放弃我在 xenforo 上的使用),他们的 bbcode 让我很烦。

我正在尝试将所有 url bbcode 从他们的更改为我的:

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

基本上他们在我不想要的网址周围有单引号,但我的代码不起作用。

4

1 回答 1

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]我的测试网址[/url]

测试在 Ubuntu 12.04 和 PHP 5.3.10 上完成。

于 2012-11-28T10:44:43.123 回答