気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. PHPエラーの原因と対策
  2. 12 view

ファイルから読み込んだ行の値比較がうまくいかないとき

テキストファイルから行を読み込んで「$line == “港区”」のような比較に使うときは、読み込んだ行に改行が含まれていないか、注意が必要です。次のような、file関数で取得したファイルのデータを1行ずつ処理するコードはうまくいきません。

○テキストファイル(test.txt)
港区
柏市
川崎市

<?php 
$data = file("test.txt"); 
  
foreach ($data as $line) { 
    if ($line == "港区") { 
        echo "東京"; 
    } 
} 
?>

この場合、ファイルから取得した行をそのまま値比較に使うのではなく、「rtrim($line)」として改行文字を削除した値と比較するなど、注意しましょう。

または、file関数の2番目のパラメータに「file(“test.txt”, FILE_IGNORE_NEW_LINES)」のようにFILE_IGNORE_NEW_LINESを指定して、改行を無視して行を読み込む方法もあります。

<?php 
$data = file("test.txt"); 
  
foreach ($data as $line) { 
    if (rtrim($line) == "港区") { 
        echo "東京"; 
    } 
} 
?>

○実行結果
東京

 この例の「rtrim」は「trim」でも大丈夫です。

 この原因の他に、if文による値の比較がうまくいかないときは、次の記事を参考に比較演算子「==」と「===」の違いを考えてみてください。

【関連記事】if文による値の比較がうまくいかないとき

PHPエラーの原因と対策の最近記事

  1. PHPの関数や変数の前にあるアットマークの意味は?

  2. 「http:// wrapper is disabled in the server co…

  3. php.iniの場所

  4. 「Warning: array_key_exists()」と表示されるとき

  5. 「Warning: A non-numeric value encountered」と表示…

関連記事

PAGE TOP