本篇文章给大家分享的内容是php关键字过滤 ,有着一定的参考价值,有需要的朋友可以参考一下
<?php class TrieTree { public $tree = array('我','过'); /** * 增加关键词到字典树 * * @param string $utf8_str */ public function add($utf8_str) { $chars = &UTF8Util::getChars($utf8_str); // 串结尾字符 $chars[] = null; $count = count($chars); $T = &$this->tree; for ($i = 0; $i < $count; $i ++) { $c = $chars[$i]; if (! array_key_exists($c, $T)) { // 插入新字符,关联数组 $T[$c] = array(); } $T = &$T[$c]; } return $this; } /** * 从字典树移除关键词 * * @param string $utf8_str */ public function remove($utf8_str) { $chars = &UTF8Util::getChars($utf8_str); $chars[] = null; // 先保证此串在树中 if ($this->_find($chars)) { $chars[] = null; $count = count($chars); $T = &$this->tree; for ($i = 0; $i < $count; $i ++) { $c = $chars[$i]; // 表明仅有此串 if (count($T[$c]) == 1) { unset($T[$c]); return; } $T = &$T[$c]; } } return $this; } /** * 从字典树查找关键词 * * @param string $utf8_str * @return boolean */ public function exists($utf8_str) { $chars = &UTF8Util::getChars($utf8_str); $chars[] = null; return $this->_find($chars); } private function _find(&$chars) { $count = count($chars); $T = &$this->tree; for ($i = 0; $i < $count; $i ++) { $c = $chars[$i]; if (! array_key_exists($c, $T)) { return false; } $T = &$T[$c]; } return true; } /** * 是否含有关键词 * * @param string $utf8_str * @param boolean $do_count * @return boolean|number */ public function contain($utf8_str, $do_count = false) { $chars = &UTF8Util::getChars($utf8_str); $chars[] = null; $len = count($chars); $Tree = &$this->tree; $count = 0; for ($i = 0; $i < $len; $i ++) { $c = $chars[$i]; // 起始字符匹配 if (array_key_exists($c, $Tree)) { $T = &$Tree[$c]; for ($j = $i + 1; $j < $len; $j ++) { $c = $chars[$j]; if (array_key_exists(null, $T)) { if ($do_count) { $count ++; } else { return true; } } if (! array_key_exists($c, $T)) { break; } $T = &$T[$c]; } } } return $do_count ? $count : false; } /** * 批量检查是否包含关键词 * * @param array $str_array * @return boolean */ public function containMulti($str_array) { if (\is_array($str_array)) { foreach ($str_array as $str) { if ($this->contain($str)) { return true; } } } return false; } /** * 导出序列化后的字典树 * * @return string */ public function export() { return serialize($this->tree); } /** * 导入序列化后的字典树 * * @param string $str */ public function import($str) { $this->tree = unserialize($str); } } class UTF8Util { public static function getChars($utf8_str) { $s = $utf8_str; $len = strlen($s); if ($len == 0) return array(); $chars = array(); for ($i = 0; $i < $len; $i ++) { $c = $s[$i]; $n = ord($c); // 0xxx xxxx, asci, single if (($n >> 7) == 0) { $chars[] = $c; } else // 1111 xxxx, first in four char if (($n >> 4) == 15) { if ($i < $len - 3) { $chars[] = $c . $s[$i + 1] . $s[$i + 2] . $s[$i + 3]; $i += 3; } } else // 111x xxxx, first in three char if (($n >> 5) == 7) { if ($i < $len - 2) { $chars[] = $c . $s[$i + 1] . $s[$i + 2]; $i += 2; } } else // 11xx xxxx, first in two char if (($n >> 6) == 3) { if ($i < $len - 1) { $chars[] = $c . $s[$i + 1]; $i ++; } } } return $chars; } } $utf8_str = new UTF8Util(); $utf_char = $utf8_str->getChars('佛教飞机撒方式的回复回复后我我认为回复日无法核实的回复我五花肉覅福热火么光和热规划局狂热韩国关乎二后过过过过过过过群军过军若绿可我让我陪我二骗人富可敌国及时来构架了');
相关推荐:
以上是php关键字过滤 的详细内容。更多信息请关注PHP中文网其他相关文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

转化方法:1、使用“mb_substr($url,stripos($url,"?")+1)”获取url的参数部分;2、使用“parse_str("参数部分",$arr)”将参数解析到变量中,并传入指定数组中,变量名转为键名,变量值转为键值。

去除方法:1、使用substr_replace()函数将首位数字替换为空字符串即可,语法“substr_replace($num,"",0,1)”;2、用substr截取从第二位数字开始的全部字符即可,语法“substr($num,1)”。

深入解析C语言中static关键字的作用和用法在C语言中,static是一种非常重要的关键字,它可以被用于函数、变量和数据类型的定义上。使用static关键字可以改变对象的链接属性、作用域和生命周期,下面就来详细地解析一下static关键字在C语言中的作用和用法。static变量和函数:在函数内部使用static关键字定义的变量称为静态变量,它具有全局生命周

PHP中var关键字的作用和示例在PHP中,var关键字用于声明一个变量。以前的PHP版本中,使用var关键字是声明成员变量的惯用方式,现在已经不再推荐使用。然而,在某些情况下,var关键字依然会被使用。var关键字主要用于声明一个局部变量,并且会自动将该变量标记为局部作用域。这意味着该变量仅在当前的代码块中可见,并且不能在其他函数或代码块中访问。使用var


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),