2014-11-25 99 views
0

我从包含xml的FTP服务器获取gzip文件。我想gunzip它并将xml作为文件写入。PHP:从gunzip写入文件

这是我现在使用的代码:

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文件?

回答

1

问题就出在你使用的escapeshellcmd。如果您look at this example,你会看到你的逃脱命令如下:

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

但你不希望>进行转义。既然你完全控制了命令的其余部分,试着只转义文件名(你不必如果它们像你的例子那样被硬编码)。

+0

这样做,谢谢! – KhorneHoly 2014-11-25 10:24:31

0

使用zlib的扩展:

+0

这应该是一个真正的评论,因为它实际上不是一个答案。 – RiggsFolly 2014-11-25 09:50:18

+0

我不同意。 PHP文档中的用户注释包含随时可用的代码。他只需点击2次,即可使用即时使用的功能进行滚动和复制粘贴。 – BreyndotEchse 2014-11-25 09:56:07