PHP:从gunzip写入文件

  • 本文关键字:文件 gunzip PHP php
  • 更新时间 :
  • 英文 :


我正在从包含xml的FTP服务器获取一个gziped文件。我想压缩它并将 xml 写成文件。

这是我现在使用的代码:

ftp_get($ftpCon, __DIR__."/../files/data.gz", $val, FTP_BINARY);
$srcName = __DIR__."/../files/data.gz";
$dstName = __DIR__."/../files/stuff.xml";
$command = 'gunzip -c '.$srcName.' > '.$dstName;
$escapedCommand = escapeshellcmd($command);
system($escapedCommand);

但是 XML 文件将在控制台上打印出来,而不是写入文件。如何将压缩文件中的数据写入 XML 文件?

问题在于你对escapeshellcmd的使用。如果您查看此示例,您将看到转义的命令如下所示:

gunzip -c from/data.gz > to/stuff.xml

但是你不希望>被逃脱。由于您可以完全控制命令的其余部分,因此请尝试仅转义文件名(如果文件名是硬编码的,则不必转义文件名,如您的示例中所示)。

使用 zlib 扩展:

  • 兹利布包装器
  • 格佐彭

最新更新