如何检查从表单或查询字符串提交的数据中是否包含某些单词?
我正在尝试在表单 [Post] 数据和查询字符串数据中查找包含 admin、drop、create 等的单词,以便我可以接受或拒绝它。
我正在从 ASP 转换为 PHP。我曾经使用 ASP 中的数组来做到这一点(将所有非法词保留在一个字符串中,并使用 ubound 检查这些词的整个字符串),但是在 PHP 中是否有更好(有效)的方法来做到这一点?
例如:这样的字符串将被拒绝:“管理员删除了一个废话”,因为它有 admin 并删除了它。
我打算在创建帐户和其他事情时使用它来检查用户名。
谢谢
你可以用 stripos()
int stripos ( string $haystack , string $needle [, int $offset = 0 ] )
Run Code Online (Sandbox Code Playgroud)
你可以有这样的功能:
function checkBadWords($str, $badwords) {
foreach ($badwords as $word) {
if (stripos(" $str ", " $word ") !== false) {
return false;
}
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
并使用它:
if (!checkBadWords('something admin', array('admin')) {
// ...
}
Run Code Online (Sandbox Code Playgroud)