Xiaoxia's blog

一个有趣的压缩包a.zip

ctime: 2010-07-28 19:28:22   mtime: 2010-09-06 01:14:46   access_count: 585   comment_count: 21  

下载地址:

http://blog.xiaoxia.org/upfiles/a.zip

 

不知道谁那么无聊,做个这么好玩的东东。像潘多拉的盒子,里面是另外一个世界。解压a.zip之后得到b.zip,解压b.zip之后得到a.zip,,,,解压到尽头,一定会有惊喜!

 

出于好奇,想揭开里面的秘密,写了个php脚本来解压文件。

注意,代码很烂,心脏不好的人勿看。

 

<?php
$a = "./a.zip";
$b = "./b.zip";

$t = "b";
$s = 1000000;
$i = 1;
while(1){
        if($t=="a"){
                if(filesize($b)<$s){
                        system("unzip -o {$b}");
                        $t="b";
                        $s = filesize($b);
                }else break;
        }else{
                if(filesize($a)<$s){
                        system("unzip -o {$a}");
                        $t="a";
                        $s = filesize($a);
                }else break;
        }
	print "unzipping ".$t." ".$i." times\n";

        $i++;
}
?>

 

执行该脚本:
 
xiaoxia@VMNAME:~/test$ time php -ftest.php > tmp
 
real    0m4.715s
user    0m2.240s
sys     0m2.450s
 
xiaoxia@VMNAME:~/test$ tail tmp
Archive:  ./a.zip
  inflating: b.zip
unzipping a 995 times
Archive:  ./a.zip
  inflating: b.zip
unzipping a 996 times
Archive:  ./b.zip
  inflating: a.zip
unzipping b 997 times
 
 

据统计,一共进行了997次解压。可能原始文件压缩了999或者1000次,后来该文件被人工解压了几次。耗时4.7秒。使用机器配置的CPU为2.4GHz的Xeon:

 

xiaoxia@VMNAME:~/test$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 15
model name      : Intel(R) Xeon(R) CPU           X3220  @ 2.40GHz
stepping        : 11
cpu MHz         : 2393.998
cache size      : 4096 KB
 

 

解压到最后,得到一个img.jpg。打开下面的链接可以看到内容:

http://blog.xiaoxia.org/images/10/img.jpg

 

另外,我也好奇使用一张有趣的个人肖像照片制作了一个压缩包,有兴趣的朋友可以试一试解压它。

原始文件大小为13068字节,压缩后多次后为684193字节,压缩用时3分钟。

下载地址 http://blog.xiaoxia.org/upfiles/test1w.zip

comments: