嗨,我有一个小插件系统,我使用这个短代码,例如:{google}stackoverflow{/google}
我希望它用指向谷歌搜索链接的链接替换该部分,在这种情况下:stackoverflow
我该怎么做?我有这个,但它不起作用:
preg_replace('#{google}([^{]+){/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);
嗨,我有一个小插件系统,我使用这个短代码,例如:{google}stackoverflow{/google}
我希望它用指向谷歌搜索链接的链接替换该部分,在这种情况下:stackoverflow
我该怎么做?我有这个,但它不起作用:
preg_replace('#{google}([^{]+){/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);
您需要转义大括号,即使用\{
and \}
。
preg_replace('#\{google\}([^{]+)\{/google\}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);
这里的关键是使用非贪婪运算符,并转义所有内容。
preg_replace('#\{google\}(.*?)\{/google\}#i','<a href="http://www.google.com?s=$1">$1</a>', $content);
您的正则表达式无效。尝试这个:
preg_replace('#\{google\}[^\{]+\{/google\}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);
preg_replace('#{google}([^{]+){\/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);