|
下载地址:
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 |