1

テキスト ファイルを 1 行ずつ読み込んでいますが、各行にはカンマ区切りの値が含まれています。例

Name,Phone,URL,notavailable

読み取りは問題なく、スクリプトは行を正しく返します。最後の値には「使用可能」または「使用不可」があります。

私はこのような行を爆発させています

$sections = explode(",", $line);

そしてそれは戻ってきます

    Array
    (
        [0] => Name
        [1] => Phone
        [2] => URL
        [3] => notavailable

    )

を使用して値を取得できます

$sections[0], $sections[1] etc.

そして、それらは問題なく表示されます。しかし、最後の値を比較しようとすると問題が発生します。

$check = $sections[3];
if($check=="notavailable")
{Do something }
else {Do something else}

しかし、if ステートメントは常に false を返します。私はそれを理解できませんでした。何度も試しました。誰かが私のスクリプトのエラーを指摘してくれるととても助かります。

前もって感謝します。

4

3 に答える 3

3

少しデバッグを行う必要があります。のような行を投げます

$check = $sections[3];
echo "check = '$check'";    // Debug print

このように引用符で囲んで印刷すると、おそらく先頭/末尾にスペースがあることがわかります。その場合は、 を呼び出すだけでtrim()対処できます。

于 2012-11-18T10:27:00.523 に答える
1

$a == $b Equal 型ジャグリング後に $a が $b と等しい場合は TRUE。$a === $b 同一 $a が $b と等しく、それらが同じ型である場合は TRUE。

ファイルを読み取ると、スペースも読み取られるため、それらをトリミングする必要があります。

したがって、次を使用する必要があります。

if(trim($section[3]) === "notavailable"){
    //Do something
} else {
    //Do something else
}
于 2012-11-18T10:31:20.510 に答える
0

使ってみて

 if(preg_match_all('/notavailable/i',$section[3]))
 {
    // Not Available
 }
 else
 {
     // Available
 }
于 2012-11-18T11:03:20.467 に答える