有些时候我们在显示一篇文章的时候,可能需要把某些关键字进行套红,高亮显示,以便我们能快速的查找和定位这些关键字,下面让我们看看具体实现的代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
/**
* 关键字套红方法
*
* @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 );
|