|
|
|
| Как можно средствами пхп создать архив rar?
Облазил весь интернет, ничего не нашел, чтение пожалуйста, а вот запись нет.
Прошу помощи)) | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 16:13)
| | Хм... в отличие от zip, rar является закрытым форматом, вряд ли будет легко обнаружить соответствующий модуль в свободном формате. | |
|
|
|
|
|
|
|
для: cheops
(03.02.2011 в 16:26)
| | Понятно, спасибо, плохо)) | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 16:13)
| | Создавайте zip, т.к., как упомянуто выше, это открытый формат. | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 16:13)
| | Даже в Delphi с его уймой компонент это вряд ли возможно. Про PHP и говорить нечего. | |
|
|
|
|
|
|
|
для: Commander
(03.02.2011 в 19:33)
| | Вот интересно, а как же во всемирной паутине все лежит в архивах?
это что же все ручками... | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 19:50)
| | Ну во всемирной паутине незанятых ручек не мало :))) | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 19:50)
| | почему ручками?
консольные утилиты есть для большинства распространенных окружений.
их можно запускать. | |
|
|
|
|
|
|
|
для: Trianon
(03.02.2011 в 20:00)
| | Вот, это уже интересно ))
Я не ищу легких путей, если можно подскажите где копать что бы это консольное приложение запустить под php, я так понимаю можно это сделать для rar | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 20:10)
| | А сайт будет под управлением Windows работать? Дело не хитрое, можно воспользоваться функциями группы exec(), которые выполняют команды операционной системы или обратными кавычками, которые делают тоже самое. Здесь есть подводный камень - как правило, эту возможность отключают на хост-площадках и для использования этой возможности необходим собственный сервер. | |
|
|
|
|
|
|
|
для: cheops
(03.02.2011 в 20:13)
| | Честно говоря это будет мой первый сайт и я расчитываю его ставить на VPS и конечно же на Linux )
А за exec() нужно подумать, что-то я не улавливаю как через нее это все сделать | |
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 20:18)
| | В первую голову нужно поискать, есть ли реализация rar под Linux (разархивировать точно можно, а вот создать архив - это вопрос). Функции exec() или в обратные кавычки нужно поместить команду операционной системы - она будет выполнена
<?php
// Что-то в этом духе, синтаксис нужно уточнить
`/path/to/rar -a /path/to/file.txt "archive.rar"`;
?>
|
PS Бывают хостинги и VPS и под Windows (с Apache, PHP, MySQL) - не самая приятная штука, но если создание rar-архивов - это ключевая часть проектов, можно посмотреть в их сторону. | |
|
|
|
|
|
|
|
|
для: Filsh
(03.02.2011 в 16:13)
| | Долго и мучительно я ставил а потом настраивал Linux под локальный сервер ))
и все таки с архивом все получилось и все оказалось на много проще чем я себе представлял,
вылаживаю то что у меня получилось, может кому-то пригодится, или возможно кто-то предложит улучшения,...
спасибо за подсказки )
function exec_rar($action, $album_dir, $files, $out_rar_name)
{
if(!is_array($files)) {
trigger_error ('exec_rar(). Incorrect input parameter', E_USER_ERROR);
return false;
}
$path_to_rar = '/usr/local/bin/';
$res = false;
switch ($action)
{
case 'rar':
$dir = getcwd();
if(!chdir($album_dir))
return false;
$command = str_replace(' ', '\ ', $out_rar_name);
foreach($files as $file)
{
$command .= ' '.str_replace(' ', '\ ', $file).' ';
}
$command = $path_to_rar.'rar a '.($command);
if(system($command) == 'Done')
$res = true;
chdir($dir);
return $res;
}
return $res;
}
|
| |
|
|
|
|
|
|
|
для: Filsh
(20.02.2011 в 11:17)
| | Возникла у меня ошибка вот здесь
$command .= ' '.str_replace(' ', '\ ', $file).' ';
|
смысл в том что имя файла может быть таким
> 09 - No Love (Feat. Lil Wayne).mp3
и при исполнении в командной строке выпадает ошибка синтаксиса,
подскажите функцию экранирования
P.S. escapeshellcmd() не помогает, она у меня не работает с кирилицей | |
|
|
|
|
|
|
|
для: Filsh
(20.02.2011 в 13:03)
| | проблема решилась, спасибо
$command .= ' '.str_replace(array(' ', '(', ')'), array('\ ', '\(', '\)'), $file).' ';
|
но может есть лутше способ, буду признателен)) | |
|
|
|
|
|
|
|
для: Filsh
(20.02.2011 в 13:11)
| | во-первых, респект.
во-вторых, скобки - не единственные спецсимволы оболочки, и я бы проверил поведение и на остальных символах, не дожидаясь, когда гром грянет. | |
|
|
|