@
Pipecraft 试了一下没有成功,可能 PHP 里存在一些问题吧,并且 php 的 preg_replace 没有 g 。
我用 php 自己写了一个
```
function keyword($dat,$keyword){
$len = strlen($dat);
$st = -1; //开始
$ishtml = false;
$html = '';
for($i = 0;$i < $len;$i++){
$s = substr($dat,$i,1);//当前字符
if(ord($s) == 60){ //<
if(!$ishtml && $i > 0 && $st + 1 < $i){//在遇到 html 标签开始符号时,进行一次截断,并处理 keyword
$html .= self::keyword_replace(substr($dat,$st + 1,$i - $st - 1),$keyword);
}
$st = $i;
$ishtml = true;
}
if(ord($s) == 62){ //>
if($st != -1){//在遇到 html 标签结束符号时,进行一次截断
$html .= substr($dat,$st,$i - $st + 1);
$ishtml = false;
$st = $i;
}
}
if(!$ishtml && $i +1 == $len){//在文本的最后一个字符时,进行一次截断,并处理 keyword
$html .= self::keyword_replace(substr($dat,$st + 1,$i - $st),$keyword);
}
}
return $html;
}
```