我们可以使用位运算符“|”在PHP中strpos? 我需要检查在给定的$ status变量中是否存在字符串a0,a1,a2,a5。 我的代码给出bellow.My代码将返回值(位置)只有当状态变量有值= a0或a1或a2或a5。它将返回false时,状态='a1测试字符串。我们可以使用位运算符“|”在PHP中strpos?
$status='a1 test string';
echo strpos("|a0|a1|a2|a5|", $status);
我们可以使用位运算符“|”在PHP中strpos? 我需要检查在给定的$ status变量中是否存在字符串a0,a1,a2,a5。 我的代码给出bellow.My代码将返回值(位置)只有当状态变量有值= a0或a1或a2或a5。它将返回false时,状态='a1测试字符串。我们可以使用位运算符“|”在PHP中strpos?
$status='a1 test string';
echo strpos("|a0|a1|a2|a5|", $status);
你可以这样使用它。这里|
意味着or
<?php
$status='a1 test string';
if(preg_match("/\b(a0|a1|a2|a5)\b/", $status))
{
echo "Matched";
}
我在一个开源项目(Open EMR)中找到了这段代码。这段代码是正确的吗? $ status ='a1 test string'; echo strpos(“| a0 | a1 | a2 | a5 |”,$ status); – user1752065
@ user1752065让我们检查其他选项 –
我们可以使用位运算符 “|”在PHP中strpos?
为位运算符|
- 没有
为一个文字符号|
- 是
所以这'(strpos(“| a0 | a1 | a2 | a5 |”,$ status))'会考虑“| a0 | a1 | a2 | a5 |”作为单个字符串r8? – user1752065
我不知道你的情况下是什么'r8',但是,是的,'strpos'认为'“| a0 | a1 | a2 | a5 |”'作为单个字符串 – RomanPerekhrest
不,你不能。 Documentation没有提到任何远程类似:
strpos
- 查找 字符串一个字符串的第一个出现的位置找到
needle
在haystack
字符串中第一次出现的数字位置。参数
haystack
的字符串中搜索。
needle
如果针不是字符串,它被转换为一个整数,并施加作为字符的顺序值 。
offset
如果指定,则搜索将开始从字符串的开头开始计算的这个数字字符 。如果偏移量为负数,则 搜索将开始从字符串的末尾 开始计算的这个字符数。
事实上,它不会使实现这种功能太大的意义,因为你已经有了一个全面的regular expression引擎:
$has_substrings = (bool)preg_match('/a0|a1|a2|a5/u', $status);
我发现上面的代码在开源项目。所以这会考虑“| a0 | a1 | a2 | a5 |”作为单个字符串r8? – user1752065
@ user1752065 r8?我不知道你在说什么 - 记住我们无法读懂你的想法;-)如果你对某些软件有疑问,你应该明确地询问它们(当然还要提供一些上下文)。 –
你不能做到这一点与一个字符串搜索。您需要使用可以一次测试多个选项的正则表达式,或者需要遍历搜索条件。
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);
问题是:如何定义什么_part_你真的想搜索该状态字符串的? – arkascha
我需要搜索字符串($状态)是否包含a1或a2或a0或a5 – user1752065
而且如果状态字符串是类似“a2不同于a5或a3!”? – arkascha