現在cakephpにてcsvへの出力機能を作っています。
そのなかでバッファのサイズがOUTPUT_SIZEを超えたらrender()でバッファの内容を出力し、バッファを初期化する、という流れを作っていきたいのですが、
ftruncateを用いて初期化を試みるとなぜかcsvの容量がとても大きくなりメモリ不足エラーになってしまいます。
良いバッファの初期化の方法や解決案を探しております。
どうかよろしくお願い致します。
lang
1 2 * 用意するバッファの大きさを表す 3 const MEMORY_SIZE = 5242880; 4 5 6 * バッファを出力する単位を表す 7 const OUTPUT_SIZE = 2000; 8 9 10this->buffer = fopen('php://temp/maxmemory:'.(self::MEMORY_SIZE), 'r+'); 11 12public function endRow() { 13 14 if(self::OUTPUT_SIZE < ftell($this->buffer)){ 15 16 echo $this->render(); 17 18 19 ftruncate( $this->buffer, 0); 20 ftruncate( $this->buffer, self::MEMORY_SIZE); 21 fseek( $this->buffer, 0, SEEK_SET); 22 23 } 24 25 } 26
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。