PHPでCSVファイルを読み込んで解析する方法【サンプルコード付き】
PHPでは、fopen()関数とfgetcsv()関数を組み合わせることで、CSVファイルを簡単に解析(パース)できます。fopen()の引数には、読み込みたい.csvファイルのパスを指定します。
基本的なサンプルコード
$row_count = 1;
if (($infile = fopen("path to .csv file", "r")) !== FALSE) {
while (($data_in_csv = fgetcsv($infile, 800, ",")) !== FALSE) {
$data_count = count($data_in_csv);
echo "<p> $data_count in line $row_count: <br /></p>\n";
$row_count++;
for ($counter = 0; $counter < $data_count; $counter++) {
echo $data_in_csv[$counter] . "<br />\n";
}
}
fclose($infile);
}
コードの解説
このコードは、以下のような流れで動作します。
- ファイルを開く:
fopen()により、対象のCSVファイルが存在すれば読み取りモード("r")で開かれます。 - 1行ずつ読み込む:
fgetcsv()がFALSEを返すまでwhileループで繰り返し処理を行います。第2引数の「800」は、1行あたりの最大読み込み文字数のしきい値です。 - 行番号を進める:
$row_countカウンタをインクリメントすることで、ファイルの次の行へ処理を移します。 - ファイルを閉じる: 読み込みが完了したら、
fclose()でファイルを確実にクローズします。
実行結果
入力されたCSVファイルが解析され、内容が1行ずつ画面に出力されます。
PHP 5.3.0以降で使える簡潔な書き方
PHPのバージョンが5.3.0以上であれば、file()関数とstr_getcsv()関数を組み合わせることで、よりシンプルに記述できます。
$file_to_read = file('path to .csv file');
$data_to_ingest = [];
foreach ($file_to_read as $infile) {
$data_to_ingest[] = str_getcsv($infile);
}
この方法では、CSVファイル全体を配列として読み込み、各行を個別の配列要素に変換して格納できます。
注意点
注意: 上記のfile()+str_getcsv()の方法は、CSVファイル内に改行コードが含まれている場合には正しく動作しません。これは、file()関数が単純に改行位置で行を分割する仕組みになっており、ダブルクォート(引用符)で囲まれたフィールド内の改行を識別できないためです。
まとめ
PHPでCSVファイルを解析する基本は、fopen()+fgetcsv()の組み合わせです。大規模なファイルでもメモリ効率よく1行ずつ処理できます。一方、ファイル全体をまとめて配列化したい場合は、PHP 5.3.0以降で利用可能なfile()+str_getcsv()が便利ですが、フィールド内に改行を含むCSVには対応できない点に留意しましょう。
-
TXTファイルをCSVに変換する方法|Excelとオンラインツールの手順を解説
テキストファイル(TXT)は、書式設定のないプレーンなテキストのみで構成された標準的な文書形式です。ほとんどのデバイスで開くことができ、拡張子は「.txt」となります。一方、CSV(カンマ区切り値)ファイルは、データがカンマやタブなどの区切り文字で整理された、より構造化された形式のファイルです。ウェブサイトからダウンロードすると、CSVではなくTXTファイルが取得できることもありますが、単に拡張子を変更しても正しく変換されません。そのため、ユーザー自身がTXTファイルをCSVファイルに変換する必要があります。 Excelを使ってTXTファイルをCSVに変換する方法 ExcelはTXTファイルと
-
WordPressのwp-config.phpファイルを保護する方法を徹底解説
ハッカーの視点で考えてみてください。何千ものWebサイトが利用しているプラットフォームに侵入したり、複数のサイトに対してブルートフォース攻撃を仕掛けたりするのは、彼らにとって魅力的な標的です。WP-Scannerのようなオープンソースツールが出回っている現在、初心者レベルの攻撃者でも、プロフェッショナルなWordPressサイトに侵入し、悪夢のような被害をもたらすことが可能になっています。 その中でもwp-config.phpは、サイトの運命を左右する最重要ファイルの一つです。このファイルが漏洩すれば、サイト全体が危険にさらされます。本記事では、wp-config.phpファイルを安全に保護す