纯粹空间 Faisun_unzip 的 unzip.php 在 64 位系统的问题
朋友反映在服务器上用不了这个 unzip.php,最近自己都是直接有 shell,就很少用这样的东东了。
因为朋友在本地环境中测试是好的,我也试了试,dump 了下数据,发现 zip 类下 ReadCentralDir 函数返回值不对。进而一步调试打印数据,就发现问题所在了。
服务器是 64 位系统,而本地是 32 位。所以 $bytes == 0x504b0506 的测试永远无法成功了。修改相关代码如下:
$bytes=(($bytes << 8 ) & 0xffffffff) | ord($byte);
哎,看来专业才是硬道理!