|
|
|
| Здравствуйте всем!
Подскажите пожалуйста как из архива RAR вытащить файлы?
Возможно ли эту задачу выполнить средствами PHP?
Заранее спасибо! | |
|
|
|
|
|
|
|
для: andrey215
(14.03.2012 в 10:38)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: Slo_Nik
(14.03.2012 в 15:24)
| | Это не отвечает на вопрос.
А чтобы распаковать RAR, нужно иметь установленное расширение и использовать php функции для работы с rar. | |
|
|
|
|
|
|
|
для: task
(14.03.2012 в 15:31)
| | Ещё как отвечает, первая статья(ссылка) о том как создать архив,
следующая статья(ссылка) по теме как раз о том, как извлечь файлы....
Надеюсь что пипл догадается ознакомиться с двумя статьями
Вернее там список ссылок, пусть выбирает, какая статья ему больше подойдёт.
p.s. и если уж на то пошло, то А чтобы распаковать RAR, нужно иметь установленное расширение и использовать php функции для работы с rar тоже не ответ на вопрос.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(14.03.2012 в 15:34)
| | А что еще отвечать? Расширение для работы с rar доступны для скачивания и сущесутвуют как для win, так и для unix платформ, а функции работы с этим массивом практически ничем не отличаются от zip (в смысле действий - открыть арив, распаковать арив), оличие лишь в том, что rar можно только распаковать.
Коли автору надо, пусть скачивает и устанавливает расширение, остается заглянуть в мануал и работа сделана. | |
|
|
|
|
|
|
|
для: task
(14.03.2012 в 15:49)
| | А что еще отвечать?
Написать названия функции или дать ссылку на статью или на раздел руководства пользователя или уж если есть желание, то дать решение в виде кода...Потому что, как я понял, задав вопрос в виде "можно ли это сделать средствами php", человек не догадывается о существовании данной возомжности/функции... Поэтому ссылка на статьи в самый раз | |
|
|
|
|
|
|
|
для: Slo_Nik
(14.03.2012 в 16:07)
| | То есть сделать по вашему - вы ссылку на Гугля, а мне ссылку на мануал рhp? )
В мануале все сказано, и где скачать расширение и как распаковать. А ваша ссылка для работы с zip архивами.
Средствами php нельзя ничего сделать с продуктами, которые не созадаются самим php, думаю это понятно, и уже должно наводить на мысль о том, что нужна некая библиотека в таком случае.
Нужно только поинтересоваться так ли это, и если да, то какая.
Ну и исключительно для ленивых:
Введение
Rar - это мощный и эффективный архиватор, созданный Eugene Roshal. Данное расширение позволяет читать Rar архивы, однако не дает возможности их записывать так как эта операция не поддерживается библиотекой UnRar и напрямую запрещена условиями ее лицензии.
Больше информации о Rar и UnRar можно найти здесь:» http://www.rarlabs.com/.
Требования
Эти функции всегда доступны.
Настройка во время выполнения
Данное расширение не определяет никакие директивы конфигурации в php.ini.
Установка
Расширение Rar в настоящее время доступно в PECL » http://pecl.php.net/package/rar.
Вы также можете воспользоваться установщиком PECL, чтобы установить расширение Rar. Для этого необходимо использовать команду: pecl -v install rar.
Также вы можете скачать архив tar.gz и установить Rar вручную:
Пример 1965. Установка Rar
gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install
Пользователи Windows могут скачать расширение в виде библиотеки dll php_rar.dll здесь: » http://snaps.php.net/win32/PECL_STABLE/.
rar_open - открывает rar архив
rar_entry_get - возвращает объект из rar архива
Rar::extract - извлекает элемент из архива | |
|
|
|
|
|
|
|
для: task
(14.03.2012 в 16:25)
| | если кому то понадобится
установить самому дополнительные расширения на сервер у меня не получилось, наверное руки не из того места )))))) мне поставили ребята из техподдержки.
А скрипт выглядит, например, так
function DeArhiveRAR($FileName,$Folder)//1 параметр - имя архива, 2 параметр - папка куда распаковывать
{
$rar_file = rar_open($FileName) or die("Невозможно открыть RAR архив");
$entries = rar_list($rar_file);
foreach ($entries as $entry)
{
echo 'Файл: ' . $entry->getName() . "\n";
echo 'Размер сжатого элемента: ' . $entry->getPackedSize() . "\n";
echo 'Размер в распакованном состоянии: ' . $entry->getUnpackedSize() . "\n";
$entry->extract($Folder);
}
rar_close($rar_file);
}
|
| |
|
|
|