PHP实现文章自动添加内链功能

发布于:2020-04-29 15:35:15

1、简单粗暴的方式

一篇文章从设定好的关键词中按照记录好的优先顺序,依次添加三个,超过三个则自动停止操作。

$times = 3;     //最多只替换三个关键词   每次替换做上标记,达到三次后,替换结束
    $keywords =   一系列获得关键词的操作;
    $num = 0;        
    foreach ($keywords as $key=>$val){
        //$val['title']   //关键词
        if($num < $times){
            if(strpos($content,$val['title'])){ //先判断是否匹配到  如果匹配到进行添加超链接操作 同事替换次数+1
                $num++;var_dump($num);
                //进行替换操作
                $content = str_replace($val['title'],'<a href="'.$val['url'].'" target="_blank">'.$val['title'].'</a>',$content);
            }
        }
    }

45e2b8903a510cd68998c22e9116709f.png



上述代码只是简单的做了当有多个待添加超链接的关键词满足条件的时候,现在个数为3,也就是说只给一篇文章中三个满足条件的关键词加上超链接,但是却没有限制满足条件的关键词要添加的次数,就出现了一个关键词超链接反复出现多次的情况。

if($num < $times){
   $pos = strpos($content,$val['title']);
   if($pos){ //先判断是否匹配到  如果匹配到进行添加超链接操作 同事替换次数+1
      $num++;
      //进行替换操作
      //$content = str_replace($val['title'],'<a href="'.$val['url'].'" target="_blank">'.$val['title'].'</a>',$content);
      $content = substr_replace($content, '<a href="'.$val['url'].'" target="_blank">'.$val['title'].'</a>', $pos, strlen($val['title']));
  }
}


原来多次出现的关键词“白茶”超链接只出现了一次。


阅读 143+

一片空白

父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。