PHPでprint_rの内容を書き出す

$str = print_r($arr);
とprint_rの内容を書き出したい場合があるが、
上記方法ではできない。

下記のようにバッファリングしてやると書き出すことができます。

$arr = array("1"=>"a","2"=>"b");
ob_start();
print_r($arr);
$buffer = ob_get_contents();
ob_end_clean();

$fp = fopen("print_r","w");
fputs($fp,$buffer);
fclose($fp);

$bufferにprint_rの結果が格納されます

参考サイト:http://phpspot.net/php/pgprint_r%82%CC%93%E0%97e%82%F0%83t%83@%83C%83%8B%82%C9%8F%91%82%AB%8Fo%82%B7.html