[PHP] ライブラリを使わずにCSVを読み込む方法

サンプルコード(RSS to CSV)

<?php 

# URLからRSSのアイテムを取得する
$url = 'https://memopad.me/feed';
$rss = simplexml_load_file($url);
$items = $rss->channel->item;

# 標準出力でSqlFileObjectを作る
$file = new \SplFileObject('php://output', 'w');

# アイテムのヘッダーを出力する
$file->fputcsv([ 'pubDate', 'link', 'title' ]);

# アイテムのコンテンツを出力する
foreach($items as $item) {
  $file->fputcsv([
    $item->pubDate,
    $item->link,
    $item->title
  ]);
}

# flashして書き出す
$file->fflush();

サンプルコード(CSV to Array)

<?php

# URLを設定する
$url = 'https://memopad.me/sample.csv';

# コンテンツを取得する
$file = new \NoRewindIterator(new \SplFileObject($url));
$file->setFlags(\SplFileObject::READ_CSV);

# 配列形式に変換
$items = iterator_to_array($file);

# 出力
var_dump($items);

解説

PHP標準のSplFileObjectを使えばCSVの読み書きが出来ます。
読み込み時にはNoRewindIteratorを使えば、foreachを使わずに配列に変換出来るので便利です。

参考リンク

免責事項

このブログは個人的なメモを兼ねたものです。

このブログを参考にした結果起こりうる如何なる事態に対しても、当方では責任を負いかねます。

予めご了承ください。