配列を CSV 形式に変換しようとすると、開発者は次のような課題に遭遇する可能性があります。行と無効化された強制ダウンロード。この記事では、これらの問題に対処し、より効率的なアプローチを紹介します。
最初のコード試行では、複数のネストされたループを使用してデータベースからデータを抽出し、追加します。それをCSVファイルに変換します。ただし、この方法では、適切にフォーマットされた CSV ではなく、1 つの長い行が作成されます。さらに、ファイルのダウンロードは自動的に開始されません。
<code class="php">fputcsv($output, array('id','name','description'));</code>
値を書き込むためのカスタム ループを fputcsv() に置き換えます。この関数は、配列を CSV 行に変換するタスクを効率的に処理します。
<code class="php">header("Content-Disposition:attachment;filename=pressurecsv.csv"); </code>
次のヘッダーを追加して、ブラウザにファイルを表示する代わりに強制的にダウンロードさせます:
<code class="php">$num = 0; $sql = "SELECT id, name, description FROM products"; if($result = $mysqli->query($sql)) { while($p = $result->fetch_array()) { $prod[$num]['id'] = $p['id']; $prod[$num]['name'] = $p['name']; $prod[$num]['description'] = $p['description']; $num++; } } $output = fopen("php://output",'w') or die("Can't open php://output"); header("Content-Type:application/csv"); header("Content-Disposition:attachment;filename=pressurecsv.csv"); fputcsv($output, array('id','name','description')); foreach($prod as $product) { fputcsv($output, $product); } fclose($output) or die("Can't close php://output");</code>
以上がPHP 配列を CSV 形式にエクスポートする際の課題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。