PHP – テキスト – 読み込み – SplFileObject

概要

Standard PHP LibraryのSplFileObjectを使ったテキストファイルの読み込みについて整理する。

  • ファイル名を指定してSplFileObjectのインスタンスを生成
    • $file = new \SplFileObject('textファイルパス');
    • $open_modeはデフォルト値の'r'(読み込み)
  • テキスト読み込みのためのフラグをセット
    • $file.setFlags(...);
  • ファイルを読み込み
    • foreachで行単位データを取得

なお、Splは”Standard PHP Library”の略。

基本例

例として、GETリクエストに応じて所定の場所に配置されたテキストファイルを読みだし、その内容を行データを要素とする配列に格納し、dd()で表示させてみる。

CSVファイルの配置

storage/app/ディレクトリーにテキストファイルを配置した場合は、storage_path()関数にstorageディレクトリーを基準としたパスを指定してフルパスを得ることができる。

たとえば以下の内容のファイルをstorage/app/text_sample_utf8.csvとして配置する(エンコーディングはUTF-8)。

コントローラー

テキストファイルを読み込み、その内容を配列に保存してdd()で表示するアクションは以下のとおり。

dd()の表示結果は以下の通り。

フラグ

空行を読み飛ばしたい場合は、READ_AHEADSKIP_EMPTYDROP_NEW_LINEの3つを設定する。空行を空の文字列として確保したい場合は最後の空行の要不要をによって、不要ならデータを削除する。

詳細はこちらを参照。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です