ここから本文です

PHPでCSVファイルを生成するときに、改行の入れ方がわかりません。

アバター

ID非公開さん

2018/10/2022:03:28

PHPでCSVファイルを生成するときに、改行の入れ方がわかりません。

$fruit = ['apple', 'orange', 'banana', 'pineapple']

というデータを、
apple orange
banana pineapple
このような並びでCSVに出力させたいです。

$stream = fopen('php://output', 'w');
foreach($data as $row){
mb_convert_variables('SJIS-win', 'UTF-8', $row);
fputcsv($stream, $row);
}

上記のプログラムで試すと、
apple orange banana pineapple
という並びで出力されてしまいます。

2個おきに改行するには、どのようにしたらいいでしょうか。

閲覧数:
23
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2018/10/2100:40:26

foreachではなく、

while(count($fruit) > 2) {
fputcsv($stream, [array_shift($fruit), array_shift($fruit)], " ");
}
if (count($fruit) > 0) {
fputcsv($stream, $fruit, " ");
}

でしょうかねぇ・・・。



(蛇足)
スペース区切りなら(デフォルトであるカンマ以外をデリミタにするなら)デリミタを指定しないといけませんね。

あと・・。LFで出力されるデータをブラウザで確認するなら、header('content-type: text/plain'); を出しておいた方がよろしいかと。

アバター

質問した人からのコメント

2018/10/21 11:19:52

ありがとうございます。
無事実装できました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる