如何使用 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
}
我是 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
}