我们可以使用Bitwise运算符" |"在php中使用strpos? 我需要检查给定的$ status变量中是否存在 a0,a1,a2,a5 字符串。 我的代码如下所示。仅当状态变量具有值= a0或a1或a2或a5 时,我的代码才会返回值(位置)。当$ status =' a1时,它将返回false测试字符串。
$status='a1 test string';
echo strpos("|a0|a1|a2|a5|", $status);
答案 0 :(得分:1)
你可以像这样使用它。此处|
表示or
<?php
$status='a1 test string';
if(preg_match("/\b(a0|a1|a2|a5)\b/", $status))
{
echo "Matched";
}
答案 1 :(得分:1)
我们可以使用Bitwise运算符&#34; |&#34;用strpos在php?
作为按位运算符|
- 否
作为文字符号|
- 是
答案 2 :(得分:1)
strpos
- 查找第一次出现的子字符串的位置 一个字符串找到第一次出现
needle
的数字位置haystack
字符串。<强>参数强>
haystack
要搜索的字符串。
needle
如果needle不是字符串,则将其转换为整数 应用为角色的序数值。
offset
如果指定,搜索将开始此数量的字符 从字符串的开头算起。如果偏移为负, 搜索将从最后开始计算这些字符数 字符串。
事实上,实现这样的功能没有多大意义,因为你已经拥有一个成熟的regular expression引擎:
$has_substrings = (bool)preg_match('/a0|a1|a2|a5/u', $status);
答案 3 :(得分:0)
单个字符串搜索无法做到这一点。您需要使用可以一次测试多个选项的正则表达式,或者需要迭代搜索项。
Sahil Gulati给出了基于正则表达式方法的简单示例。
这是一种基于迭代的简单方法:
<?php
$status = 'a1 test string';
$search = explode('|', substr("|a0|a1|a2|a5|", 1, -1));
// would be much easier to start with an array of search tokens right away:
// $search = ['a0', 'a1', 'a2', 'a5'];
$result = false;
array_walk($search, function($token) use ($status, &$result) {
$result = (FALSE!==strpos($status, $token)) ? true : $result;
});
var_dump($result);