php在文章内容里给关键词加超链接
对于很多PHP新手来说,要在文章内容里把关键词加上超级链接可能有一点难度,所以我就直接把我收集到的一个方法代码贴出来给大家直接使用;
//文章内容自动添加关键词链接类,本类是从贤诚CMS2.0(http://www.mydecms.com)系统里分离出来的一个类 class autolink { var $array_first = array(); private $array_last = array(); function ContentReplace($str){ foreach($this -> array_first as $key=>$value){ $this -> array_last[$key] = array('TFXS00'.$key, $value[0], '<a href="'.$value[1].'"'.(trim($value[2]) <>"" && trim($value[2]) != "NULL" ? ' target="'.trim($value[2]).'"':"" ).'>'.$value[0].'</a>'); } $count = count($this -> array_last); for($i=0; $i<$count; $i++){ for($j=$count-1; $j>$i; $j--){ //如果后一个元素长度大于前一个则调换位置 if(strlen($this -> array_last[$j][1]) > strlen($this -> array_last[$j-1][1])){ $tmp = $this -> array_last[$j]; $this -> array_last[$j] = $this -> array_last[$j-1]; $this -> array_last[$j-1] = $tmp; } } } $keys=$this -> array_last; foreach($keys as $nkeys){ $str= $this -> str_replace_once($nkeys[1], $nkeys[0], $str); } foreach($keys as $nkeys){ $str= $this -> str_replace_once($nkeys[0], $nkeys[2], $str); } return $str; } //只替换一次 private function str_replace_once($needle, $replace, $haystack) { $pos = strpos($haystack, $needle); if ($pos === false) { return $haystack; } return substr_replace($haystack, $replace, $pos, strlen($needle)); } } /* ------------实例--------------- $autolink = new autolink(); $autolink -> array_first = array(array("贤诚网","http://www.mydecms.com"),array("CMS","http://www.mydecms.com"),array("文章管理系统","http://www.mydecms.com")); $str = "贤诚网提供了一款非常简单CMS系统(文章管理系统),大家可以免费下载来建站哟!温馨提示您:建议您最好去贤诚网下载!"; echo $autolink -> ContentReplace($str); */