PHP で CSV 文字列生成
str_getcsv はあるものの、str_putcsv なる関数がない
ネーミングがおかしい気がしますが str2csv ?
仕方なく自作することに
因みに implode( ',', $array); でいいじゃんって人は帰ってください。
いいんじゃないですか?それで
で、話を戻すと、fputcsv がすぐに思い浮かぶ
そして、バッファも確かあったなと
出力バッファがまず思い浮かんだけど、用途として間違っている
出力バッファ関数郡は魅力的だけど
出力バッファを使ってしまうと
この処理をする前に何か出力されていたら、相当面倒なことになる。
出力バッファなんて使ったら何してんのって話だ。
てことで、しょうがなく、バッファで遠回りして csv 生成
一から、csv 生成関数作ってもいいような気もするけど、その辺は時短ということで
<?php if ( $fh = fopen( 'php://memory', 'w+' ) ) { foreach ( $ary as $line ) { fputcsv( $fh, $line ); } fseek( $fh, 0 ); $str_csv = stream_get_contents( $fh ); fseek( $fh, 0 ); ftruncate( $fh, 0 ); fclose( $fh ); }
サイズが気になる方は
php://temp
を検討してもいいと思います。
今回は、サイズの小さいものに限られていたので、php://memory で
エイヤとやっています。