php fileで読み込んだ配列にin_arrayでマッチングさせると見つからない?

fileは、ファイルの内容を一気に配列に入れてしまう命令だ。
in_arrayは、配列内に指定の文字列が存在するか一気にチェックしてくれる命令だ。
この2つを使うとテキストファイルに書き出したマスターデータなどに存在チェックをかける仕組みが2行で書けてしまうのだ。なんてお手軽!
ところがだ
$data_file = file(“CodeMaster.dat”);
if (in_array($code,data_file)){ …….

とするとなぜだかマッチしないのだ。
実は配列に納まった文字には行末文字が含まれているためマッチしないのだ。
よってこれを回避するには、
$data_file = file(“CodeMaster.dat”,FILE_IGNORE_NEW_LINES);
とすることにより配列の各要素の最後に改行文字は追加されません。
これでばっちりマッチします。

【送料無料】PHPポケットリファレンス改訂版

【送料無料】PHPポケットリファレンス改訂版
価格:2,499円(税込、送料別)

【送料無料】PHP逆引きレシピ

【送料無料】PHP逆引きレシピ
価格:2,730円(税込、送料別)

コメント

タイトルとURLをコピーしました