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