去除敏感关键字,替换关键字描红函数

一开始用的是preg_replace,但是经过一段时间的实践,发现有的时候会出错,还是换回原先的 str_replace。




/* 关键词描红 */
function SearchReplaceKw($string,$sokw='',$useSafe=false)
{
    if($useSafe) $sokw = SafeStrip($sokw);
    if(empty($sokw) || empty($string)) return $string;
    //$sokw = preg_replace('/\s+/','|',$sokw);
    //return preg_replace("/($sokw)/i",'<font color="red">\\1</font>',$string);
    $sokwarr = explode(' ',$sokw);
    $sokwarr = array_unique( $sokwarr);
    foreach($sokwarr as $k )
    {
        $string = str_ireplace($k, '<font color="red">'.$k.'</font>', $string);
    }
    return $string;
}

/* 去除特殊字符,不包括空格 */
function SafeStrip($kw)
{
  if(strlen($kw) == 0) return '';
  $badStringArr = array(
  '`',  '~',    '!',    '@',    '#',    '$',    '%',    '^',    '&',    '*',
  '(',  ')',    '_',    '+',    '|',    '-',    '=',    '\\',
  '[',  ']',    '{',    '}',    ';',    '\'',   ':',    '"',
  '<',  '>',    '?',    ',',    '.',    '/');
  return preg_replace('/([\r\n\t ]+)/',' ',str_replace($badStringArr,' ',$kw));
}

使用 str_replace替换。用preg_replace 容易出错!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值