2013-02-03 58 views
1

我想看看是否。 [dot]是否存在於字符串中。如何檢查'。'[點]是否存在於字符串中? strstr不工作在php

我試過strstr,但它返回false。

這裏是我的代碼: -

<?php 
$str = strpos("true.story.bro", '.'); 
if($str === true) 
{ 
     echo "OK"; 
} else { 
     echo "No"; 
} 
?> 

我想看看 ''是否存在於字符串中,我可以做爆炸,但我想在1行中做,我怎麼能這樣做?

感謝

+0

'if($ str === false)'更好 - 因爲'strpos'返回一個索引,如果它不是* false *。 'if($ str === false)echo'No'; else echo'OK';' –

+0

'strpos'永遠不會返回一個明確的布爾值'true'值。 – nickb

回答

9

您可以直接使用strpos

if (strpos($mystring, ".") !== false) { 
    //... 
} 

希望這有助於:)

+0

奇怪它有效 謝謝:) – UserHex

+0

不客氣!事實上,「strpos」是一個「困惑?」 int,如果句子中不存在針部分,則返回false。只要注意驗證strpos類型的運算符'!==',因爲如果strpos返回的int等於FALSE,那麼'!='也可以使其成爲true,這將是一個錯誤。 –

0

Strpos返回的第一個,第二個參數中第一次出現的索引。使用

$str !== false 
0

您正確使用strpos。它返回字符串第一次出現的整數,而不是true,如果找到它。

試試這個代碼,而不是:

$str = strpos("true.story.bro", '.'); 
if($str !== false) 
{ 
    echo "OK"; 
} else { 
    echo "No"; 
} 
0

如果 「」位於字符串中的第一個字節,strpos將正確返回零。這不方便評估等於false。反轉你的邏輯,像這樣:

<?php 
$str = strpos("true.story.bro", '.'); 
if($str === false) 
{ 
     echo "No"; 
} else { 
     echo "OK"; 
} 
?> 
0

strpos的回報要麼是整數(0到的strlen(字符串)-1)或布爾(假),那麼,你可以檢查此使用兩種情況:

$pos = strpos('this is text with . dot', '.'); 
if(is_int($pos)){ 
echo 'dot is found'; 
}else{ 
echo 'dot not found'; 
} 

or 
if($pos === false){ 
echo 'dot not found'; 
}else{ 
echo 'dot found'; 
} 

note strpos('. test', '.') = 0 then is_int(0) ? true 
相關問題