2014-11-25 98 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