我正在尝试在 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/