>  기사  >  php教程  >  ucenter의 단어 필터링 원리 분석

ucenter의 단어 필터링 원리 분석

高洛峰
高洛峰원래의
2016-12-30 16:52:041088검색

이 글은 ucenter의 단어 필터링 원리를 분석한 것입니다. 다음과 같이 참조용으로 모든 사람과 공유하십시오.

필터 단어 목록

ucenter의 단어 필터링 원리 분석

캐시 데이터 구축:

//private
function _get_badwords() {
  $data = $this->db->fetch_all("SELECT * FROM ".UC_DBTABLEPRE."badwords");
  $return = array();
  if(is_array($data)) {
    foreach($data as $k => $v) {
      $return['findpattern'][$k] = $v['findpattern'];
      $return['replace'][$k] = $v['replacement'];
    }
  }
  return $return;
}

호출 방법:

$_CACHE['badwords'] = $this->base->cache('badwords');
if($_CACHE['badwords']['findpattern']) {
  $subject = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $subject);
  $message = @preg_replace($_CACHE['badwords']['findpattern'], $_CACHE['badwords']['replace'], $message);
}

preg_replace()의 각 매개변수(제한 제외)는 배열이 될 수 있습니다. 패턴과 교체가 모두 배열인 경우 해당 키는 배열에 나타나는 순서대로 처리됩니다. 이는 인덱스의 숫자 순서와 반드시 동일할 필요는 없습니다. 어떤 패턴이 어떤 교체로 대체되는지 식별하기 위해 인덱스가 사용되는 경우 preg_replace()를 호출하기 전에 배열을 ksort()로 정렬해야 합니다.

이 글이 PHP 프로그래밍에 종사하는 모든 분들께 도움이 되기를 바랍니다.

ucenter의 단어 필터링 원리 분석과 관련된 더 많은 기사를 보려면 PHP 중국어 웹 사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.