我們可以使用位運算符「|」在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