我正在创建一个 PHP 应用程序,它会在某个时候从网站下载 SFX 存档并需要从中提取数据。
由于我在 Linux 机器上运行它,我需要删除文件的 SFX 可执行部分并将压缩文件保存在文件系统上,然后我将运行一个程序来解压缩/提取。(SFX 档案基本上是一个 EXE 文件,其后附加了压缩档案。我已经用十六进制编辑器手动尝试过这个,它工作得很好。)
SFX 存档中压缩存档的文件类型将始终相同,我知道该文件类型的幻数是什么。
然后我需要在 PHP 中做的是,在下载文件(让我们假设一个简单的file_get_contents()
使用 URL 参数)并且它位于内存中之后,我需要从压缩存档的幻数开始的内容中提取数据。
我在想我也许可以做某种正则表达式方法,但是,我需要将其处理为二进制信息(幻数需要表示为十六进制)而不是字符数据。幻数本身包含非打印/不显示为任何可读字符的十六进制值。