リスティング広告 運用代行サービス|株式会社カルテットコミュニケーションズ|Yahoo広告/Google広告正規代理店

【PHP】fgets()で認識できる改行コードについて

PHPの組込み関数fgets()およびfile()では、読み込んだテキストファイルの改行を自動で認識して一行ずつ取得することが出来ます。

しかし、実はこれらの関数が認識できる改行コードはLF(\n)のみです。

改行コードがLF(\n)またはCRLF(\r\n)なら問題ないのですが、Macで作成したファイルなどで改行コードがCR(\r)の場合は改行が認識できず全てが一行として取り込まれてしまいます

解決策

LF意外の改行コードを認識できるようにするためには、php.iniで

auto_detect_line_endings = on

を設定しておけばよいです。

これを設定しておくと、fgets()およびfile()によって読み込まれたデータを評価し、CR、LF、CRLFのどの改行コードが使用されているかを自動で判別してくれるようになります

若干の性能劣化があることと過去バージョンとの互換性維持のために、デフォルトではオフになっているようです。また、この設定オプションは、PHP 4.3で追加された機能です。それより前のバージョンのPHPでは動作しませんのでご注意ください。

余談ですが、fgets()で読み込んだ一行分の文字列には、末尾に改行コードが残っています。読み込んだ文字列の末尾から改行を取り除くには、rtrim()関数が便利です。

1営業日以内に返信いたします 広告の運用代行についてのお問い合わせはこちら
シェアする

ブログ記事の中で広告運用の事例をご紹介することがありますが、実際の事例を一部加工した内容となっておりますのでご留意ください。

また、2018年7月24日よりGoogle AdWordsはGoogle広告に名称変更されました。それ以前の記事に関してはGoogle AdWordsと表記されておりますのでご了承ください。


リスティング広告の
情報をお届け

メルマガではリスティング広告に詳しくなれる記事を毎週一週間分まとめてお届けします。不定期にはなりますがリスティング広告に限らず、Web集客改善に繋がる資料もお送りしていきますので、興味のある方はぜひご登録ください。

同じカテゴリの最近の記事