preg_replace 文章关键字替换

作者: 淡蓝海域 分类: php 发布时间: 2013-08-22 10:12

在shopex下面的文章

$db = $this->system->database();
$sql = “SELECT keyword,links FROM sdb_keylink_item “;
$kl_first = $db->select($sql);
$str = $this->pagedata[‘article’][‘content’];
$kl_last = array();
foreach($kl_first as $kk=>$vv){
$kl_last[$kk] = array(‘xuwz’.$kk.’key’, $vv[“keyword”], ‘<a href=”‘.$vv[“links”].'” target=”_blank” title=”‘.$vv[“keyword”].'”>’.$vv[“keyword”].'</a>’);
}
$count = count($kl_last);
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j–){
//如果后一个元素长度大于前一个则调换位置
if(strlen($kl_last[$j][1]) > strlen($kl_last[$j-1][1])){
$tmp = $kl_last[$j];
$kl_last[$j] = $kl_last[$j-1];
$kl_last[$j-1] = $tmp;
}
}
}
$keys=$kl_last;
foreach($keys as $nkeys){
$str = preg_replace(“/(?!<[^>]*)”.$nkeys[1].”(?![^<]*>)/”, $nkeys[0], $str,2);
}
foreach($keys as $nkeys){
$str = preg_replace(“/(?!<[^>]*)”.$nkeys[0].”(?![^<]*>)/”, $nkeys[2], $str,2);
}
$this->pagedata[‘article’][‘content’] = $str;

其中:preg_replace(“/(?!<[^>]*)”.$nkeys[0].”(?![^<]*>)/”, $nkeys[2], $str,2); 里面 “/(?!<[^>]*)”.$nkeys[0].”(?![^<]*>)/”  这个可以忽略掉 图片标签中alt以及所有在<>字符里面的文字替换,最后面的 2 为限制替换次数!

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论