嗨,我有一个小插件系统,我用这个短代码举例:{google}stackoverflow{/谷歌}
我希望它将该部分替换为谷歌搜索链接的链接,在这种情况下:堆叠式
我该怎么做?我有这个,但它不起作用:
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);
preg_replace('#{google}([^{]+){'/google}#i', '<a href="http://www.google.com?s=$1">$1</a>', $content);