PHP 如何写一个敏感词汇过滤
时间: 2023-08-08 15:07:16 浏览: 51
在 PHP 中,可以使用正则表达式进行敏感词汇过滤。以下是一个简单的示例代码,供参考:
```php
$sensitiveWords = array('敏感词1', '敏感词2', '敏感词3'); //敏感词汇列表
$message = "这是一条包含敏感词汇的消息,例如敏感词1和敏感词2";
foreach ($sensitiveWords as $word) {
$pattern = '/'.preg_quote($word, '/').'/i'; //创建正则表达式模式,忽略大小写
$replacement = str_repeat('*', mb_strlen($word, 'UTF-8')); //创建替换字符串,保持长度不变
$message = preg_replace($pattern, $replacement, $message); //替换敏感词汇
}
echo $message; //输出:这是一条包含***的消息,例如***和***
```
在上面的示例代码中,我们首先定义了一个敏感词汇列表,然后遍历列表中的每个敏感词汇。对于每个敏感词汇,我们使用 `preg_quote()` 函数创建一个正则表达式模式,忽略大小写。然后,我们使用 `str_repeat()` 函数创建一个与敏感词汇长度相同的替换字符串,用于替换敏感词汇。最后,我们使用 `preg_replace()` 函数将消息中的敏感词汇替换为替换字符串。
相关问题
帮我写一个xss过滤器
当涉及到编写XSS过滤器时,最好的方法是使用现有的库或框架,而不是自己编写一个。这是因为编写一个安全可靠的XSS过滤器需要考虑到很多方面的细节,如果未能正确处理任何一种情况,就可能导致过滤器无法防御XSS攻击。
以下是使用PHP中的HTML Purifier库编写一个基本的XSS过滤器的示例:
```php
// 引入HTML Purifier库
require_once '/path/to/HTMLPurifier.auto.php';
// 创建HTML Purifier对象
$config = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($config);
// 要过滤的HTML代码
$dirty_html = '<script>alert("XSS Attack!");</script>';
// 过滤HTML代码
$clean_html = $purifier->purify($dirty_html);
// 输出过滤后的HTML代码
echo $clean_html;
```
通过以上代码,HTML Purifier将会过滤掉`<script>`标签及其内容,以防止XSS攻击。需要注意的是,XSS过滤器通常只能防止非持久性的XSS攻击,无法完全防止所有的XSS攻击,所以在编写Web应用程序时,还需要注意其他安全问题。
php 写一个过滤中文和特殊符号的函数
可以使用以下函数来过滤中文和特殊符号:function filterChineseAndSpecialChar($string) {
$pattern = '/[\x{4e00}-\x{9fa5}|\x{ff00}-\x{ffef}|\x{3000}-\x{303f}]+/u';
return preg_replace($pattern, '', $string);
}