2013-06-01 130 views
3

我在服務器上有一個zip文件。它是1.1gb由數千個小文件組成的。我沒有shell或root權限訪問服務器,只能使用ftp並創建php文件..到目前爲止,我已經嘗試過exec和shell exec,但都沒有工作。服務器正在運行免費bsd。我如何將文件解壓縮到它所在的目錄中?PHP解壓縮非常大的文件

+0

你能編輯的php.ini?我認爲在PHP中解壓它會需要一段時間,並會導致超時。 –

+0

我所擁有的就是ftp訪問web根目錄,並且php作爲受限用戶運行 – Ozzy

+1

如果你不能改變超時時間,我會認爲只是在本地解壓縮並且通過FTP將文件解壓縮到服務器上過夜將是最簡單的解決方案。無論如何你都需要睡覺,對吧? :) –

回答

3

對於純粹的PHP解決方案,請嘗試PclZip - 這不需要您安裝任何PHP擴展或需要shell訪問權限 - 只需要將訪問權限寫入您想要提取文件的任何位置即可。

1
$filename = '/media/file.gz'; 

$unzipped_content = ''; 
$zd = gzopen($filename, "r"); 
while ($zip_file = gzread($zd, 10000000)){ 
    $unzipped_content.= $zip_file; 
} 
gzclose($zd); 

echo $unzipped_content;