Free lancer’s blog

フリーランス活動に関する記録を記して行こうと思います。

PHP で CSV 文字列生成

PHPCSV 文字列が必要になったんですが、

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 で
エイヤとやっています。