我刚开始使用PHP正则表达式。我理解如何阅读和写作(我需要我的书,因为我没有记住任何模式符号)。我真的想在我的网站上使用RegExp for BB Code,使用preg_replace
。
我理解参数,但我不明白的是定义模式中要替换的内容是什么?到目前为止我所拥有的:
preg_replace('/(\[url=http:\/\/.*\])/','<a href="$1">$2</a>',"[url=http://google.com]");
现在,我知道它可能不是最好的“安全”明智的,我只想得到一些工作。我匹配整个字符串...所以我得到一个看起来像mysite/[url=http://google.com]
的链接。
我阅读了关于它的PHP手册,但我仍然在努力吸收和理解某些东西时头疼:
我甚至不知道他们叫什么。有人可以向我解释一下吗?
答案 0 :(得分:3)
相同的替换没有错误:
$BBlink = '[url=http://google.com]';
$pattern = '~\[url=(http://[^] ]+)]~';
$replacement = '<a href="$1">$1</a>';
$result = preg_replace($pattern, $replacement, $BBlink);
说明:
1)模式
~ # pattern delimiter
\[ # literal opening square bracket
url=
( # first capturing group
http://
[^] ]+ # all characters that are not ] or a space one or more times
) # close the capturing group
] # literal closing square bracket
~ # pattern delimiter
2)更换
$1
指的是第一个捕获组
替代方案:http://www.php.net/manual/en/function.bbcode-create.php,请参阅第一个示例。