在使用strpos沒有成功,我有以下代碼/串: $ids="#222#,#333#,#555#";
通過搜索字符串
當我在尋找使用部分:
if(strpos($ids,"#222#"))
也不會發現它。但是,當我在尋找沒有哈希,它的工作原理使用:
if(strpos($ids,"222"))
我已經使用strval
的搜索參數嘗試過,但是這不會也行。
在使用strpos沒有成功,我有以下代碼/串: $ids="#222#,#333#,#555#";
通過搜索字符串
當我在尋找使用部分:
if(strpos($ids,"#222#"))
也不會發現它。但是,當我在尋找沒有哈希,它的工作原理使用:
if(strpos($ids,"222"))
我已經使用strval
的搜索參數嘗試過,但是這不會也行。
strpos
從0開始計數,如果沒有找到,則返回false。你需要檢查是否與===
像這樣的假......
if (strpos($ids, '#222#') === false) // not found
或者使用!==
如果你想相反測試...
if (strpos($ids, '#222#') !== false) // found
見PHP Manual entry以獲取更多信息
謝謝!!!!!這是問題! – Zwen2012 2013-04-11 13:28:24
@ user1824136很高興有幫助!不要忘記標記正確的答案:) – 2013-04-11 13:30:21
它按預期工作。 strpos()
返回0,因爲您正在搜索的字符串位於單詞的開頭。你需要做一個平等搜索:
更新您的if()
聲明如下:
if(strpos($ids, '#222') !== false)
{
// string was found!
}
'strpos()'如果找不到字符串,則返回'false' ..不是-1 – 2013-04-11 13:08:24
我碰到提交後意識到。更新。 – BenM 2013-04-11 13:08:58
在上帝的綠色地球上的其他語言中,這是正確的。不幸的是,PHP使用'FALSE'作爲[哨兵價值](http://en.wikipedia.org/wiki/Sentinel_value)。 – cwallenpoole 2013-04-11 13:09:20
你是不是explecitely爲FALSE使用strpos時測試。使用這樣的:
if(strpos($string, '#222#') !== FALSE) {
// found
} else {
// not found
}
說明:您正在使用它像這樣:
if(strpos($string, '#222#')) {
// found
}
這有什麼問題嗎?答案:strpos()
將返回字符串中找到子字符串的位置。在你的情況下0
作爲它在字符串的開頭。但0
將被視爲虛假的PHP,除非您發出明確的檢查與===
或!==
。
謝謝!!!!!這是問題! – Zwen2012 2013-04-11 13:29:35
試試這個:
$ids="#222#,#333#,#555#";
if(strpos($ids,"#222#") !== false)
{
echo "found";
}
,您應該使用!==
因爲'#222#'
的位置是0th (first)
字符。
你試過逃脫哈希? (strpos($ IDS, 「\#222 \#」))。 – tompaman 2013-04-11 13:07:00