【发布时间】:2011-08-15 23:39:04
【问题描述】:
我正在使用here的这个函数,即:
// highlight search keywords
function highlight($title, $search) {
preg_match_all('~\w+~', $search, $m);
if(!$m)
return $title;
$re = '~\\b(' . implode('|', $m[0]) . ')\\b~i';
return preg_replace($re, '<span style="background-color: #ffffcc;">$0</span>', $title);
}
效果很好,但仅适用于标题。我希望能够传递一个包含 $title 和 $description 的数组。
我正在尝试这样的事情:
$replacements = array($title, $description);
// highlight search keywords
function highlight($replacements, $search) {
preg_match_all('~\w+~', $search, $m);
if(!$m)
return $replacements;
$re = '~\\b(' . implode('|', $m[0]) . ')\\b~i';
return preg_replace($re, '<span style="background-color: #ffffcc;">$0</span>', $replacements);
}
它不工作。它传递一个数组作为标题,而不是突出显示描述(尽管它实际上是返回一个描述)。知道如何让它工作吗?
【问题讨论】:
-
你的indentation 看起来很乱。请修复它。
标签: php preg-replace highlight preg-match-all