我从包含xml的FTP服务器获取一个gzip压缩文件。我想将其压缩并将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文件?
答案 0 :(得分:1)
问题在于您使用escapeshellcmd
。如果您look at this example,您会看到您的转义命令如下所示:
gunzip -c from/data.gz \> to/stuff.xml
但是你不希望>
被转义。由于您可以完全控制命令的其余部分,因此请尝试仅转义文件名(如果他们像您的示例中那样硬编码,则不必这样做。)
答案 1 :(得分:0)
使用zlib扩展名: