※具体的な例を書いて頂けると有り難いです。
ヘッダ部分を比較するといけます
bzip2のヘッダ
先頭10バイトが 文字列BZhと圧縮率、マジックナンバー6バイト(0x314159265359) の場合、bzip2です
gzipのヘッダ
先頭3バイトが0x1F,0x8B,0x08の場合、gzip(deflate)です
#!/usr/bin/php -q <? $buf = fread( STDIN, 10 ) or die("fread"); // print( "$buf\n" ); // bzip2判定 if( preg_match( "/BZh(\d)1AY&SY/", $buf, $m ) ){ print("bzip2 ". $m[1] ."\n"); } // gzip判定 for($i=0;$i<10;$i++){ $a[$i] = ord(substr($buf,$i,1)); } if( $a[0]==0x1F && $a[1]==0x8B && $a[2]==0x08 ){ print("gzip\n"); } ?>
プログラムで書くとこんな感じです
たいへん遅くなりましたが、回答どうもありがとうございました。
2014/10/02 08:24:57意外と簡単に実装できそうですね。参考にさせて頂きます!