我有问题。我有服务,它给我.exe文件,他们声称实际上是zip存档。一个自解压存档。 问题是我正在使用我的应用程序(php)下载到服务器,需要在那里提取它,无需下载到本地计算机。 我已经尝试将.exe文件下载到本地计算机 - 它是在windows上自我解压缩到/ temp目录而不是自启动FLASH播放器。
$ zip = zip_open($ myfile);在print_r($ zip)中给出:1 zip-> open也没有结果。 将.exe更改为.zip不会让winzip或其他类型的un-packer在Windows上打开它 - .exe也无法通过winzip打开.exe。
现在我不知道如何处理它。如果有人可以提供建议。
答案 0 :(得分:2)
尝试使用system命令
将程序作为可执行文件执行答案 1 :(得分:1)
从100%不信任的外部来源执行文件永远不是一个好主意。
info-zip版本的zip允许您从自解压zip文件(带-J标志)中删除SFX存根,将其转换回普通的zip文件。
源代码免费提供。
创建一个自解压zip文件是在zip文件前加上SFX二进制代码,然后将二进制存根的大小附加到生成的文件中 - 但我不确定数据是如何表示的 - 但是对可用代码进行一些逆向工程应该明确这一点。
答案 2 :(得分:0)
嗯......如果您的PHP服务器是Windows,那么在将其作为系统命令执行时应该没有问题。否则,它会有点棘手。我听说unzip system命令将解压缩自解压zip文件,但我目前无法访问Linux机箱进行试用。
如果你在共享托管,很可能你不能这样做。
答案 3 :(得分:0)
如果您认为在执行exe文件后,它会提取其内容,那么您可以使用exec
函数来运行.exe文件,如下所示:
exec("d:\\example\\php\_exe\\1436.exe");
并且您也可以使用system
函数来运行外部程序。
如果你想知道区别的是什么: