Maison >php教程 >PHP开发 >Utilisez l'extension PHP trie_filter pour filtrer les mots sensibles chinois

Utilisez l'extension PHP trie_filter pour filtrer les mots sensibles chinois

黄舟
黄舟original
2017-03-22 14:29:132756parcourir

1. Installez libiconv, qui est une dépendance de libdatrie

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 
tar zxvf libiconv-1.14.tar.gz 
cd libiconv-1.14
./configure 
make 
make install

2 Installez : libdatrie (http://linux.thai.net/~thep/datrie/datrie.html#Download)

tar zxf libdatrie-0.2.4.tar.gz   
cd libdatrie-0.2.4  
./configure --prefix=/usr/local   
make   
make install

Erreur de compilation trietool.c:125 : référence non définie à `libiconv'

La solution est : ./configure LDFLAGS=-L/usr/local/lib LIBS=- liconv

3. Installez l'extension trie_filter

Comme l'extension officielle trie_filter ne supporte pas très bien le chinois, j'ai trouvé une extension sur git qui a été réécrite sur l'extension officielle et testée sans aucun problème

La méthode d'installation est la suivante :

https://github.com/wulijun/php-ext-trie-filter Téléchargez le package source ici

phpize
./configure --with-php-config=/usr/local/bin/php-config 
make
make install

4. Modifiez le fichier php.ini, ajoutez l'extension trie_filter : extension=trie_filter.so et redémarrez PHP.

Vérifiez phpinfo et constatez que l'extension trie_filter est disponible, comme indiqué dans la figure ci-dessous :

Utilisez lextension PHP trie_filter pour filtrer les mots sensibles chinois

5. Générez un dictionnaire pour la détection de mots, car il n'est pas inclus dans le package de code source téléchargé ci-dessus. Avec la commande permettant de générer un dictionnaire, vous devez également télécharger le package de code source officiel

(https://code.google.com/p/as3chat/. downloads/detail?name=trie_filter-2011-03-21.tar.gz)

tar zxf trie_filter-2011.03.21.tar.gz   
cd trie_filter-2011.03.21    
gcc -o dpp dpp.c -ldatrie // 生成dpp命令用语编译词典 
./dpp words.txt words.dic  //将words.txt 编译成trie_filter使用的词典 words.txt中每个词占一行

Erreur lors de la génération du dictionnaire : ./dpp : erreur lors du chargement des bibliothèques partagées : libdatrie.so.1 : impossible d'ouvrir fichier objet partagé : aucun fichier ou répertoire de ce type

Solution : exécutez

ldconfig

puis exécutez

./dpp words.txt words.dic

très bien

6. Test :

<!--?php 
/**
 * trie_filter 敏感词过滤示例
 * 
 **/ 
   
// 载入词典,成功返回一个 Trie_Filter 资源句柄,失败返回 NULL 
$file = trie_filter_load(&#39;./words.dic&#39;); 
var_dump($file); 
$str1 = &#39;今天利用trie_filter做敏感词过滤示例&#39;; 
$str2 = &#39;今天利用trie_filter做过滤示例&#39;; 
// 检测文本中是否含有词典中定义的敏感词(假设敏感词设定为:‘敏感词’) 
$res1 = trie_filter_search_all($file, $str1);  // 一次把所有的敏感词都检测出来
$res2 = trie_filter_search($file, $str2);// 每次只检测一个敏感词 
var_dump($res1); 
echo "<br/-->"; 
var_dump($res2);
trie_filter_free($file); //最后别忘记调用free

Il est recommandé d'utiliser php Pour les versions 5.3.3 et supérieures, j'utilise 5.3.3

Ce qui précède est le contenu de l'utilisation de l'extension PHP trie_filter pour filtrer le chinois mots sensibles. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Articles connexes :

Une méthode efficace de filtrage des mots sensibles (PHP)

Le filtrage des mots sensibles PHP utilise une extension tierce trie_filter

PHP implémente le filtrage des mots sensibles dans les messages

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn