2012-03-04 15 views
1

私はこれが最後であること、いろいろなことを試してみましたzipアーカイブをダウンロードし、私はアーカイブであるジッパーのディレクトリにコンテンツを抽出するために必要なスクリップを持っている:PHPでファイルを解凍しますか?

mkdir("/home/site/public_html/".$db."", 0777); 

    $url = 'http://wordpress.org/latest.zip'; 
    $path = "/home/site/public_html/".$db."/latest.zip"; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

    $data = curl_exec($ch); 

    curl_close($ch); 

    file_put_contents($path, $data); 

    $zip = new ZipArchive; 
    $zip->open("/home/site/public_html/".$db."/latest.zip"); 
    $zip->extractTo("/home/site/public_html/".$db."/"); 
    $zip->close(); 

zipファイルのダウンロードだけ。しかし、それは抽出されません。私はファイルを抽出する別の方法はありますか?

+0

私は、 'open()'で使われているzipファイルの内容を 'extatcTo()'で引数として渡したパスに展開しないのですか? –

+0

まあ、理想的にはい、それは起こるはずですが、そうではありません。 zipファイルはダウンロードされますが抽出されません。 – user715564

答えて

1

これは権限エラーのようです。多くのホスティングプロバイダ(そして良いセキュリティプラクティス)がウェブユーザ(PHPが実行しているもの)のために、Webディレクトリ内に書き込まないなどの制限付きのアクセス権を持つことが一般的です。 error_reportingレベル(http://php.net/manual/en/function.error-reporting.php)をアップして、失敗の詳細を知ることができるかどうかを確認してください。これが問題なら、suexecで解決できます。 (http://www.alain.knaff.lu/howto/PhpSuexec/)注意してください!

+0

zipは正常にダウンロードされますが、そのファイルを解凍するときに権限の問題が残る可能性があります。 – user715564

+0

許可の問題でした。正しいフォルダに読み書き権限を与える必要がありました。ありがとう! – user715564

+0

素晴らしい!ただし、アプリケーションのセキュリティ上の欠陥により、他のデータが削除される可能性があります。そのフォルダに重要なものを残さないようにしてください。 – David

関連する問題