preg_replace短代码

时间:2012-08-22 19:42:53

标签: php preg-replace

您好我有一个小插件系统,我使用这个短代码例如: {谷歌} {计算器/谷歌}

我希望它用谷歌搜索链接的链接替换该部分,在这种情况下: 计算器

我该怎么做?我有这个,但它不起作用:

preg_replace('#{google}([^{]+){/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);

4 个答案:

答案 0 :(得分:1)

你需要逃避花括号,即使用\{\}

preg_replace('#\{google\}([^{]+)\{/google\}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);

答案 1 :(得分:1)

这里的关键是使用非贪婪的算子,并逃避一切。

preg_replace('#\{google\}(.*?)\{/google\}#i','<a href="http://www.google.com?s=$1">$1</a>', $content);

答案 2 :(得分:1)

你的正则表达式无效。试试这个:

preg_replace('#\{google\}[^\{]+\{/google\}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);

答案 3 :(得分:-1)

preg_replace('#{google}([^{]+){\/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);