PHP给文字内容中的关键字进行套红处理
author:一佰互联 2019-04-27   click:170

有些时候我们在显示一篇文章的时候,可能需要把某些关键字进行套红,高亮显示,以便我们能快速的查找和定位这些关键字,下面让我们看看具体实现的代码。

/**  * 关键字套红方法  *   * @access public  * @param array $options 参数数组  *  <li> $info_arr  array  内容</li>  *  <li> $search_arr array  关键词数组 </li>  * @return int or array  */  function set_arr_keyword_red($info_arr, $search_arr) {  foreach ($search_arr as $search_str)  {   foreach ($info_arr as $key => $info)   {    if(in_array($key,array("item_title","keywords", "photo_title", "photo_site","content",)))    {     $info = strip_tags($info);     $info = str_replace(" ", "", $info);     $q_str_pos = stripos($info, $search_str);     if (false!==$q_str_pos)     {      $info = csubstr($info, $q_str_pos+150);      $temp = csubstr($info,$q_str_pos-150);      $info = substr($info, strlen($temp), 300);      $info = preg_replace("/{$search_str}/i", "<font color="red">{$search_str}</font>", $info);       if($info_arr["match_key"]=="")      $info_arr["match_key"] = $key;     }     else     {      $info = csubstr($info,300);     }    }    $info_arr[$key] = $info;   }  }  return $info_arr; } $str = "woloveu小君";$info_arr = array("photo_title" => "womejiojd我们都围殴防静低屁啊小君鸡冻啊泡脚盆大");$search_arr = array("小君");$ret = set_arr_keyword_red($info_arr, $search_arr);dump($ret );