PHP:检查某些单词的字符串

Nor*_*man 1 php

如何检查从表单或查询字符串提交的数据中是否包含某些单词?

我正在尝试在表单 [Post] 数据和查询字符串数据中查找包含 admin、drop、create 等的单词,以便我可以接受或拒绝它。

我正在从 ASP 转换为 PHP。我曾经使用 ASP 中的数组来做到这一点(将所有非法词保留在一个字符串中,并使用 ubound 检查这些词的整个字符串),但是在 PHP 中是否有更好(有效)的方法来做到这一点?

例如:这样的字符串将被拒绝:“管理员删除了一个废话”,因为它有 admin 并删除了它。

我打算在创建帐户和其他事情时使用它来检查用户名。

谢谢

Nul*_*ion 5

你可以用 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)