版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/T_Struggle/article/details/74202480
/**
* 文章详情匹配一次关键字内链
*
* @param $content string 文章内容
* @param $arr array 关键字数组
* @param $url string 内链url
* @param $suffix string url后缀
*/
function articleInner($content, $arr, $url, $suffix='.html'){
$regular = '<a .*>.*<\/a>|<img .*>|<iframe .*>.*<\/iframe>';
$chunkeds = preg_split("/($regular)/Ui", $content, -1, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
$tagArr = array();
foreach ($chunkeds as $k => $val) {
$bool = preg_match("/($regular)/Ui", $val);
if(!$bool){
foreach ($arr as $key => $value) {
if(($position = strpos($val,$value['name']))!==false && !in_array($value['name'], $tagArr)){
$leng = strlen($value['name']);
$replIntro = "<a href='".$url.$value['id'].$suffix."' target='_blank'>".$value['name']."</a>";
$val = substr_replace($val,$replIntro,$position,$leng);
$tagArr[] = $value['name']; //记录已内链的关键字
}
}
$chunkeds[$k] = $val;
}
}
return implode('', $chunkeds);
}