I have the following code:
function mmh_links($message){
ini_set('auto_detect_line_endings','1');
$row = 1;
if (($handle = fopen(realpath(dirname(__FILE__))."/mmh_replace.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$message = preg_replace("/({$data[0]}(?![^><]*?(?:>|<\/a)))/i","<a href=\"{$data[1]}\" class=\"postlink\">$1</a>",$message,1);
}
fclose($handle);
}
return $message;
}
这段代码从CSV文件中查找特定关键字,并用CSV文件中给定的链接将它们包围起来。此外,它确保每个关键字仅替换一次,并确保不替换已在链接内的关键字,并且不区分大小写。到目前为止都很好。
现在我想将搜索限制为“整个单词”,也就是说,我不希望“test”匹配“xxxtestxxx”。
在保留之前所有规则的同时,我最好的选择是什么?