如何使用 php 获取多个值可以变成单个值

How to Get Multiple values can become single using php

我是 PHP 的新人。我有一个 String.I 用它来为 strpos 函数找词 例如..

$a= "google" ;
$b= "google is best one" ;

  if(strpos($b, $a) !== false) {
echo "true, " ; // Working Fine...

}

所以我想在这种情况下检查我的示例

$a= "google,yahoo,Bing" ;
$b= "Bing is Good " ;

  if(strpos($b, $a) !== false) {
echo "true, " ; // I Need True...

}

你就是这样做的PHP

澄清一下,您似乎正在尝试执行匹配,以便 $a 中的值列表中的任何值都出现在 $b 中。使用简单的 strpos() 调用是不可能的,因为 strpos() 查找您传入的字符串的确切位置。

您尝试做的是基于模式的搜索。为了使这项工作有效,请考虑使用带 preg_match() 的正则表达式。这样的示例可能如下所示:

$pattern = '/google|yahoo|Bing/';
$target_string = 'Bing is good';

if(preg_match($pattern, $target_string)) {
    echo "true, ";
}

有关详细信息,请查看正则表达式语法并尝试使用它,直到您熟悉它们的工作原理。

使用 explode() 在逗号上拆分字符串,然后分别检查每个部分:

$a= "google,yahoo,Bing" ;
$b= "Bing is Good " ;

$parts = explode(',', $a);

foreach ($parts as $part) {

    if(strpos($b, $part) !== false) {
        echo "true, " ; // I Need True...
    }

}

就像 Patrick Q 所说的将名称放入数组示例是 here

因为您正在搜索所有三个词 "google,yahoo,Bing" 这不可能是真的。

但初学者可以通过其他方式理解。

$a[0]= "google";
$a[1]= "yahoo";
$a[2]= "Bing";
$b= "Bing is Good";
strpos($b, $a[0]); // false
strpos($b, $a[1]); // false
strpos($b, $a[2]); // true as Bing found

你也可以循环检查

您可以使用正则表达式解决您的问题:

if (preg_match('/string1|string2|string3/i', $str)){
  //if one of them found
}else{
  //all of them can not found
}