2011-07-05 10 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設定オプションでコンパイルされているかどうかも確認してください

このモジュールは必要に応じてインストールしてください。

チェック:http://www.php.net/manual/en/zip.installation.phpインストール方法の詳細については、こちらをご覧ください。

あなたはPHPが権利を持っているかどうかを確認したい場合に使用できるオプションまたはロードされたモジュールを設定します。

<?php 

phpinfo(); 

?> 
0

多分あなたのサーバサイドのphp.iniにZipArchiveモジュールを有効にしていないだけでしょうか?

編集: 多分あなたは括弧を忘れていますか? お試しください $ zip = new ZipArchive();