PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

テキストファイルから行を読み込んで「$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文による値の比較がうまくいかないとき

スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP関数

WordPress

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク