2011-07-05 18 views
3

我有一段代碼可以在測試服務器上正常工作,但在實時服務器上失敗(由於PHP版本)。無法實例化不存在的類:ziparchive

我得到這個錯誤:

Fatal error: Cannot instantiate non-existent class: ziparchive in /home/sites/www.example.com/web/zip.php on line 123

而且代碼:

$zip = new ZipArchive; 
$zip->open($_FILES['uploadedfile']['tmp_name']); 
$zip->extractTo('unzipped/' . $id . '/'); 
$zip->close(); 

如何度過,即使沒有ZipArchive類是可用的工作?


編輯:我用強大的谷歌:

<?php 
$zip = zip_open("zip.zip"); 
if ($zip) { 
    while ($zip_entry = zip_read($zip)) { 
    $fp = fopen("zip/".zip_entry_name($zip_entry), "w"); 
    if (zip_entry_open($zip, $zip_entry, "r")) { 
     $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); 
     fwrite($fp,"$buf"); 
     zip_entry_close($zip_entry); 
     fclose($fp); 
    } 
    } 
    zip_close($zip); 
} 
?> 

的偉大工程。

+0

你肯定行123是你提供的一個?在錯誤消息'ziparchive'是小寫,但在你的代碼中不是。 – KingCrunch

+0

這是整個代碼中唯一啓動此類的地方 – 419

+2

您的服務器上是否安裝了Zip擴展?檢查你的'phpinfo()'。 – Orbling

回答

2

檢查兩個系統上的PHP版本。 還檢查php是否使用--enable-zip configure選項進行編譯

如果需要,安裝此模塊。

檢查:http://www.php.net/manual/en/zip.installation.php有關如何安裝的更多信息。

如果您要檢查如果PHP有正確的配置選項或加載模塊,你可以使用:

<?php 

phpinfo(); 

?> 
0

也許你只是沒有啓用ZipArchive模塊在你的serverside php.ini?

編輯: 也許你只是忘了括號? 嘗試 $ zip = new ZipArchive();

相關問題