我有一个内容块,其中的人名用双括号括起来。例如:
Lorem ipsum dolor sit amet,consectetur [[Jane Doe]] adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。Ut enim ad minim veniam, quis nostrud exercitation ullamco [[John Doe]] laboris nisi ut aliquip ex ea commodo consequat。Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。Exceptioneur sint occaecat cupidatat non proident, [[Susan Van-Something]] sunt in culpa qui officia deserunt mollit anim id est laborum。
我正在尝试编写一个正则表达式,将名称从双括号中取出,并在内容中使用以下格式的链接替换它们:
<a href='http://www.example.com/jane-doe/'>Jane Doe</a>
在 URL 中,空格被转换为连字符,并且整个名称都是小写的。
到目前为止我有
// the filter function
function names_brackets( $content ) {
// regex replace the names with links
// return the content
return preg_replace_callback( "/^([[[A-Za-z0-9- ]+?]])/" , "names_callback" , $content);
}
// callback function to allow post processing
function names_callback ( $matches ) {
$find = array(' ', '[', ']');
$replace = array('-', '', '');
return '<a href="http://www.example.com/' . strtolower( str_replace($find, $replace, $matches[1]) ) . '">' . str_replace(']', '', str_replace('[', '', $matches[1])) . '</a>';
}
不幸的是,我怀疑正则表达式有问题。任何帮助,将不胜感激。