Распаковать ZIP-архив с помощью PHP

У меня есть проблема О извлечении zip-файла с помощью PHP
Я пытаюсь использовать много общего скрипта в Интернете, но он все еще не работает
последний скрипт, который я пытаюсь сделать, это этот скрипт:

<?php $zip = new ZipArchive; $res = $zip->open('data.zip'); if ($res === TRUE) { $zip->extractTo('/extract/'); $zip->close(); echo 'woot!'; } else { echo 'doh!'; } ?> 

Я всегда получаю условие else при запуске скрипта, я попытался заменить data.zip и /extract/ path на полный путь http://localhost/basedata/data.zip и http://localhost/basedata/extract/ но у меня все еще есть условие else, Кто-нибудь может мне помочь?

Вот мой весь скрипт и zip-файл http://www.mediafire.com/?c49c3xdxjlm58ey

Вы должны проверить, какой код ошибки открывается ( http://www.php.net/manual/en/ziparchive.open.php ), что даст вам некоторую помощь.

Коды ошибок:

  ZIPARCHIVE::ER_EXISTS -10 ZIPARCHIVE::ER_INCONS - 21 ZIPARCHIVE::ER_INVAL - 18 ZIPARCHIVE::ER_MEMORY - 14 ZIPARCHIVE::ER_NOENT - 9 ZIPARCHIVE::ER_NOZIP - 19 ZIPARCHIVE::ER_OPEN - 11 ZIPARCHIVE::ER_READ - 5 ZIPARCHIVE::ER_SEEK - 4 

ZipArchive использует пути к файлам, а не URL-адреса.

Например, если корнем документа вашего веб-сервера является /srv/www , укажите /srv/www/basedata/data.zip (или где бы файл находился в локальной файловой системе сервера), а не http://localhost/basedata/data.zip .

Если файл .ZIP находится на удаленном компьютере, сначала измените его, чтобы загрузить его, прежде чем извлекать его, хотя это не похоже на ваш случай.

Кроме того, пользователь запускает скрипт PHP, поскольку ему требуется разрешение на чтение для Zip-файла и разрешение на запись для получателя для извлеченных файлов.

вы объявляете свой $zip (ziparchive) неправильно

 <?php $zip = new ZipArchive; 

отсутствует скобки

 <?php $zip = new ZipArchive(); if ($zip->open('data.zip')) {