# php-trie-filter **Repository Path**: meystack/php-trie-filter ## Basic Information - **Project Name**: php-trie-filter - **Description**: PHP8.1 敏感词过滤C语言扩展 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-31 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # trie_filter — PHP 8.1+ 敏感词过滤扩展 在对一个PHP项目进行敏感词过滤的时候,除了API我们使用DFA以外,在长文本的异步审核工作中,,哪怕PHP是常驻内存类型的也无法使用AC自动机,10万+敏感词直接撑爆内存,在写了新算法搞成二进制的AC自动机后,单次审核在50ms左右,无法用于生产环境,然后就发现了php_trie_filter项目,基于 Double-Array Trie 树的 PHP C 扩展,使用 cmake 构建,但是太老了,并且不兼容PHP8.1,fork了代码升级后并修复了一些问题,经过测试10w+敏感词查询均在0.010ms以下,特别适用PHP开发者!本仓库非原创作者,原作者已经找不到了,我只是升级支持PHP8.1而已,站在巨人的肩膀上,让我们看的更远! ## 依赖 | 依赖 | 最低版本 | CentOS 安装 | |------|---------|------| | PHP | 8.1+ | `yum install php-devel` | | libdatrie | 0.2.4+ | `yum install libdatrie-devel` | | cmake | 3.10+ | `yum install cmake` | | gcc/clang | C99+ | `yum install gcc gcc-c++ make` | ## 编译安装 ```bash # 1. 安装依赖(CentOS/RHEL) yum install libdatrie-devel php-devel cmake gcc gcc-c++ make # 2. 构建 mkdir -p build && cd build cmake .. make -j$(nproc) # 3. 安装扩展 sudo make install # 4. 启用扩展(二选一) # 方式A: 写入 ini 文件(路径以实际 php.ini 为准) echo "extension=trie_filter.so" >> $(php -i | grep 'Loaded Configuration File' | awk '{print $NF}') sudo systemctl restart php-fpm # 方式B: 命令行加载 php -d extension=trie_filter.so test.php ``` ### 验证安装 ```bash php -m | grep trie_filter # trie_filter ``` ## 使用示例 ### 构建词库文件 ```php