11

かどうかを確認しようとしています。[ドット] が文字列に含まれているかどうか。

strstr を試しましたが、false が返されます。

ここに私のコードがあります:-

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

「。」かどうかを確認したい 文字列に存在するかどうか、explodeでできますが、1行で実行したいのですが、どうすればできますか?

ありがとう

4

5 に答える 5

28

strposを直接使用できます。

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

この助けを願っています:)

于 2013-02-03T19:41:10.680 に答える
0

strpos の戻り値が整数 (0 から strlen(string)-1) またはブール値 (false) のいずれかである場合、次の 2 つのケースを使用してこれを確認できます。

$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
于 2013-02-03T19:51:42.063 に答える
0

Strpos は、最初の引数で 2 番目の引数が最初に出現するインデックスを返します。使用する

$str !== false
于 2013-02-03T19:43:23.667 に答える
0

strpos の使い方が間違っています。true文字列が見つかった場合ではなく、最初に出現した文字列の整数を返します。

代わりに次のコードを試してください。

$str = strpos("true.story.bro", '.');
if($str !== false)
{
    echo "OK";
} else {
    echo "No";
}
于 2013-02-03T19:43:31.887 に答える
0

もしも "。" が文字列の最初のバイトにある場合、strpos正しくゼロが返されます。それは不都合なことに等しいと評価されfalseます。次のようにロジックを反転します。

<?php
$str = strpos("true.story.bro", '.');
if($str === false)
{
        echo "No";
} else {
        echo "OK";
}
?>
于 2013-02-03T19:43:39.147 に答える