我正在从包含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 扩展:
- 兹利布包装器
- 格佐彭