現在の位置: ホーム> 最新記事一覧> PHPのFPUTCSV関数を使用してArrayデータをCSVファイルに正しく書き込む方法は?詳細な手順は何ですか?

PHPのFPUTCSV関数を使用してArrayデータをCSVファイルに正しく書き込む方法は?詳細な手順は何ですか?

M66 2025-06-26

開発プロセス中に、CSVファイルはデータのエクスポートとデータ交換によく使用されます。 PHPは、ArrayフォーマットされたデータをCSVファイルに書き込むために、非常に便利な組み込み関数fputcsv()を提供します。この記事では、 FPUTCSV()関数を使用して標準のCSVファイルに配列を正しく書き込む方法について詳しく説明します。

1。FPUTCSVとは何ですか?

FPUTCSV()は、PHPによって提供される関数です。その機能は、Array形式のデータをCSV形式のオープンファイルリソースに書き込むことです。この関数は、手動のスプライシングによって引き起こされるエラーを回避するために、必要な区切り文字、引用符、ラインブレイク、その他の問題を自動的に扱います。

関数プロトタイプは次のとおりです。

 fputcsv(resource $stream, array $fields, string $separator = ",", string $enclosure = "\"", string $escape = "\\"): int|false

パラメーター説明:

  • $ stream :ファイルハンドル、 fopen()で開かれたリソース。

  • $フィールド:記述する1次元配列、各要素はCSVファイルの列を表します。

  • $セパレーター:フィールド間のセパレーターは、デフォルトでコンマ( )になります。

  • $エンクロージャー:フィールド値の囲まれた文字。これは二重引用符( " )にあります。

  • $ ESCAPE :エスケープキャラクター、デフォルトはBackSlash( \ )です。

2。記述するデータを準備します

CSVファイルに書き込みたいユーザーデータのセットがあるとします。

 $data = [
    ['ユーザー名', '郵便', '登録時間'],
    ['チャン・サン', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['王ウー', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

3。CSVファイルに書き込むためのコード例を完全にします

上記のデータをusers.csvという名前のファイルに書き込みたい:

 <?php

// 書く CSV ファイルパス
$filename = 'users.csv';

// 書き込みモードでファイルを開きます(ファイルが存在しない場合、自動的に作成されます)
$fp = fopen($filename, 'w');

if ($fp === false) {
    die("ファイルを開くことができません: $filename");
}

// 書く数据
$data = [
    ['ユーザー名', '郵便', '登録時間'],
    ['チャン・サン', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['王ウー', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

// データのすべての行をループし、ファイルに書き込みます
foreach ($data as $row) {
    fputcsv($fp, $row);
}

// ファイルハンドルを閉じます
fclose($fp);

echo "CSV ファイルの書き込みが完了しました。\n";

4。ダウンロードするブラウザへの出力(オプション)

ファイルをサーバーに保存したくないが、ユーザーにCSVファイルを直接ダウンロードできる場合は、次の方法を使用できます。

 <?php

header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="users.csv"');

$fp = fopen('php://output', 'w');

$data = [
    ['ユーザー名', '郵便', '登録時間'],
    ['チャン・サン', 'zhangsan@m66.net', '2025-06-10 10:00:00'],
    ['li si', 'lisi@m66.net', '2025-06-10 11:20:00'],
    ['王ウー', 'wangwu@m66.net', '2025-06-10 12:35:00']
];

foreach ($data as $row) {
    fputcsv($fp, $row);
}

fclose($fp);

このコードを含むPHPファイルにアクセスすることにより、ブラウザはusers.csvという名前のファイルをダウンロードするように求められ、コンテンツは準備されたデータです。

5.よくある質問と予防策

  1. 文字エンコードの問題:デフォルトの出力はUTF-8です。 Excelで開くときにCarled Codeが表示される場合、出力の前にUTF-8 BOMヘッダーを追加できます。

     echo "\xEF\xBB\xBF"; // に追加 BOM
    
  2. 配列は一次元である必要がありますfputcsv()は1次元配列のみを受け入れ、多次元配列を渡す場合は、行ごとに処理する必要があります。

  3. ファイル許可の問題:PHPスクリプト指定されたディレクトリに書き込む許可があることを確認してください。

6。概要

PHPのFPUTCSV()関数を使用すると、ローカルファイルに書き込まれるか、ブラウザを介して直接ダウンロードされているかどうかにかかわらず、ArrayフォーマットデータをCSVファイルに簡単に書き込むことができます。データを準備し、ファイル操作機能を正しく使用して、効率的で標準化されたデータエクスポート機能を実現します。