Guest User

Untitled

a guest
Aug 21st, 2014
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.04 KB | None | 0 0
  1. <?php
  2.     $data = file_get_contents('log.txt');
  3.      
  4.     // ヘッダ部分を取り除く
  5.     $data = explode("\r\n\r\n", $data, 2)[1];
  6.    
  7.     $tmpfile_name = tempnam(sys_get_temp_dir(), 'chunked_gunzip');
  8.     $out_file = fopen($tmpfile_name, "w");
  9.    
  10.     // とりあえず先頭3回分だけ
  11.     foreach (range(1, 3) as $dummy) {
  12.         // 最初の改行で2つに分割する
  13.         list($size, $data) = explode("\r\n", $data, 2);
  14.        
  15.         // サイズを16進数から10進数に変換
  16.         $size = base_convert($size, 16, 10);
  17.        
  18.         // サイズ分だけ読み込む
  19.         $part = substr($data, 0, $size);
  20.        
  21.         // とりあえず一時ファイルに書き出す
  22.         fwrite($out_file, $part);
  23.        
  24.         // サイズ+2(改行コード)の位置から続き
  25.         $data = substr($data, $size + 2);
  26.     }
  27.    
  28.     fclose($out_file);
  29.    
  30.     $in_file = gzopen($tmpfile_name, "r");
  31.     while (!gzeof($in_file)) {
  32.         echo gzgetc($in_file);
  33.     }
  34.     gzclose($in_file);
Advertisement
Add Comment
Please, Sign In to add comment