php给一组指定的关键词添加span标签,高亮突出显示关键词
// Example use: $spanned = codeWords($string_containing_keywords);
// My site: andrew.dx.am
// Using colour==blue, but different arrays of words and different
// colours can be added.
function onlyWholeWords(&$value, $key) {
// Ignores words after // comment delimiters.
//$value = "/\b(" . $value . ")\b/"; // doesn't handle comments
//$value = "/^(?:(?!\/\/).)*\K\b(" . $value . ")\b/";
// \K lookbehind alternative is not supported in PHP < 5.2.4, so use:
$value = "/^((?:(?!\/\/).)*)\b" . $value . "\b/";
}
function addSpan(&$value, $key, $color='blue') {
$value = "$1" . $value . "";
}
function codeWords($code) {
$keywords = array('as', 'break', 'case', 'class', 'continue', 'default',
'do', 'elif', 'else', 'elseif', 'for', 'foreach', 'function', 'if',
'new', 'null', 'return', 'self', 'switch', 'this', 'to', 'typeof',
'until', 'var', 'void', 'while', 'with');
$keywords2 = $keywords;
array_walk($keywords, 'onlyWholeWords');
array_walk($keywords2, 'addSpan', 'blue');
$code = preg_replace($keywords, $keywords2, $code);
return $code;
}
开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明php给一组指定的关键词添加span标签!