![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
phpのin_array()でわからない事があります。
$str = array('リンゴ','オレンジ','バナナ');
if(in_array("オレンジ",$str)){
print "OK";
}else{
print "NG";
}
結果:OK
上記は何の問題もないのですが、
$str = @file('hoge.txt');
if(in_array("オレンジ",$str)){
print "OK";
}else{
print "NG";
}
結果:NG
// hoge.txt
リンゴ
オレンジ
バナナ
こうするとNGになってしまいます。
最近PHPを始めたばかりで根本的な事がわかってないのかも知れませんが、
もし原因をご存じの方がいれば教えていただけないでしょうか。
すみませんがよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
可能性としては2つ
ひとつは改行文字の問題
http://www.php.net/manual/ja/function.file.php
var_dump($str);
してみるとわかりますが、バイト数が想定より大きくなっているようなら改行文字が
入っています。
基本的にはFILE_IGNORE_NEW_LINESを指定すると解決します。
もうひとつは文字コードの問題、
テキストファイルとプログラムファイルの文字コードが一致しないと話になりません。
また、fileでやるよりもう少し厳密にfopenしてfreadして・・・という
プログラム的なI/Oを心がけた方がミスがへります
No.1
- 回答日時:
file 関数はデフォルトでは改行コードを含むのが原因です。
$str = @file('hoge.txt', FILE_IGNORE_NEW_LINES);
とするといいと思います。
参考URL:http://php.net/manual/ja/function.file.php
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(プログラミング・Web制作) listへのappendが出来ない件 1 2022/12/06 21:44
- その他(プログラミング・Web制作) pythonのmap、結果の利用は1度だけ? 5 2022/06/11 12:33
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- その他(プログラミング・Web制作) パイソンのプログラムで continue と passの違い 3 2022/03/25 07:38
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 型が一致しませんとエラー 6 2023/07/06 20:14
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サイト名を取得するPHP
-
XML_Serializerで複数のXMLの扱い
-
PHP5の外部コマンド実行で、バ...
-
$_SESSIONに二次元配列を使える...
-
配列をループでたくさん宣言し...
-
重複確認
-
CSVデータの行数カウントをした...
-
URLのサブドメインとドメイン部...
-
読み(あ行~わ行)ごとに分け...
-
CSVデータを使ったページングと...
-
多次元配列を、1次元の配列にす...
-
ネストが深い時のforeachはどう...
-
file_existsでファイル名の部分...
-
CArrayのソート
-
別ファイルの構造体の値を読み...
-
PHPのカッコ[ ]の使い方について
-
CSVファイルの最終行のデー...
-
配列の添え字が小数だとどうなる?
-
C言語の配列をPush(追加)する...
-
【PHP】csvファイルへの書き出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンメニューにDBの内容...
-
phpとmysqlで「あいまい検索」...
-
PHP5の外部コマンド実行で、バ...
-
「ローマ字 -> ひらがな」へPHP...
-
Mysqlとphpでソートや更新時の...
-
PEAR・MDB2のモジュールロード...
-
HTTPのメッセージボディについ...
-
数学の「組み合わせ」を求める...
-
順位を付ける時のスコアの重複...
-
Zend_Form_Element_Hash
-
日付から順にデータを並び替えたい
-
占いのPHPを作成中ですが・・・
-
しりとり 無限ループ?
-
要素(文字列)から指定値を検索
-
選択日と終了日を配列で取得したい
-
サイト名を取得するPHP
-
flickrでの画像を取得について
-
多次元配列のカウント+1の仕方
-
mysqlにinsertするとエラーがで...
-
$xml要素を階層指定して取得し...
おすすめ情報