php - 检查字符串是否包含几个单词之一

标签 php string if-statement strpos

我正在尝试在 php 中创建一个单词过滤器,我看到了以前的 Stackoverlow 帖子,其中提到了以下内容以检查字符串是否包含某些单词。我想要做的是对其进行调整,使其一次性检查各种不同的单词,而无需一遍又一遍地重复代码。

$a = 'How are you ?';

if (strpos($a,'are') !== false) {
echo 'true';
}

如果我将代码修改成下面的代码,它会工作吗?......

$a = 'How are you ?';

if (strpos($a,'are' OR $a,'you' OR $a,'How') !== false) {
echo 'true';
}

添加多个单词以检查“”的正确方法是什么?

最佳答案

要扩展您当前的代码,您可以使用一组目标词来搜索并使用循环:

$a = 'How are you ?';

$targets = array('How', 'are');

foreach($targets as $t)
{
    if (strpos($a,$t) !== false) {
        echo 'one of the targets was found';
        break;
    }
}

请记住,以这种方式使用 strpos() 意味着可以找到部分单词匹配。例如,如果目标是字符串 here is an example 中的 ample,那么将找到匹配项,即使根据定义单词 ample 不是'目前。

对于整个单词匹配,preg_match() 中有一个示例可以通过为多个目标添加循环来扩展的文档:

foreach($targets as $t)
{
    if (preg_match("/\b" . $t . "\b/i", $a)) {
        echo "A match was found.";
    } else {
        echo "A match was not found.";
    }
}

关于php - 检查字符串是否包含几个单词之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19178295/

相关文章:

php - 仅从数据库中选择随机条目一次

java - 给定两个字符串 str1 和 str2 作为输入,删除 str1 中出现在 str2 中的所有字符

php - 将特色图片添加到自定义帖子类型

php - 如果用户在浏览器上单击关闭,则从 mysql 表中删除用户 session

ios - NSMutableAttributedString 作为 UIAlertAction 的标题 - Swift

android - 将字符串的每个字符转换为整数

r - 简单的if-else代码执行后,R-studio服务器返回错误

c# - if 语句中的赋值

php - 这些 PHP if 表达式有什么区别?

php - 我应该如何在 PHP 中保存我的常量