[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php архиватор arj
Gradus
Существует ли возможность в php открыть формат arj .Я поставил мазоль гуглу тобеж не нашёл.Видел тока zip и rar.

Нашёл какой-то скрипт из одного файла unziptodir.psh который должен разорхивировать arj
Из чего он
PHP
#!/usr/bin/php -q
<?php

$unarchive_commands 
= Array();

$unarchive_commands["zip"] ="unzip %s";
$unarchive_commands["arj"] ="arj x -r %s";
$unarchive_commands["rar"] ="rar x -r %s";

if( 
$argc )
    
usage(); // usage also exists with exit code 1

for($i=1$i $argc $i++) {
    
$curfile $argv[$i];
    if(!
file_exists($curfile)) {
        echo(
"warning:" $curfile " file not found continuing\n");
        continue;
    }

    
$path_info pathinfo(realpath$curfile));
    
$path_info["extension"] = strtolower($path_info["extension"]);
    
$command sprintf($unarchive_commands[$path_info["extension"]], 
                                
$path_info["dirname"] . "\\" $path_info["basename"]);

    if( 
strlen($command) == ) {
        echo(
"unsupported filetype:" $path_info["extension"] . "\n");
        exit(
2);
    }

    
$dir_name substr($path_info["basename"], 0
        
strlen($path_info["basename"]) - (strlen($path_info["extension"])+1));

    if(!
is_file($dir_name)) {
        if(!
is_dir($dir_name) ) {
            if(!
mkdir($dir_name)) {
                echo(
"warn: error creating output directory " $dir_name);
            }
        }

        
$command_returnvalue 0;
        
$command_output = Array();
        
chdir($dir_name);
        
exec($command$command_output$command_returnvalue);
        
//echo($command . "\n");
        
chdir("..");
        if(
$command_returnvalue != )
            echo(
join("\n"$command_output));
    }
    else
        echo(
"warn: archive  " $path_info["basename"] . " wasn't extracted a file with the same name exists!!\n");

}

function 
usage() {
    global 
$argv;
    echo(
"usage:\t" basename($argv[0]) . " <filenames>\n\n");
    echo(
"supported file types are zip,arj,rar\n");
    exit(
1);
}


и прилагаеться риадми
Цитата

/*
Copyright © 2002 by Adi Sieker  All rights reserved.
contact: adi@l33tless.org
*/
A little command цine script written in php to extract any number of
arj,rar and zip archives to a directory which gets the same name as
the archive minus extension.
The script uses external apps to actually handle the archives.
i.e. you'll actually needs arj,rar and unzip somewhere in your path or
edit the script lines 5-8 and change the commands there.

Developed and tested under Windows but it should also work under *nix.
Under *nix you'll _very_ probably have to edit the $unarchive_commands
array to create the correct commands.

usage: unziptodir.psh <archive list>

example:
unziptodir.psh Archive1.zip Archive2.arj Archive3.rar

Что с ним делать непонятно...

Нужно поставить крон который будет разорхивировать файлы такого формата(другой формат не возможен) читать внутрение файлы и заносить в бд.Застрял на том что разорхивировать не могу



Спустя 2 часа, 34 минуты, 25 секунд (3.11.2009 - 16:25) FatCat написал(а):
Если я правильно понял, это под виндовые хостинги.
Если никс не понимает аэрджу, скрипт сам ничего с ней сделать не сможет.

Спустя 16 минут (3.11.2009 - 16:41) Gradus написал(а):
Я под виндой не могу его запустить,непонятно как им пользоваться sad.gif

Спустя 1 день, 18 часов, 18 минут, 4 секунды (5.11.2009 - 10:59) Gradus написал(а):
Подскажите как пользоваться скриптом плиз smile.gif

Спустя 14 минут, 51 секунда (5.11.2009 - 11:14) glock18 написал(а):
точно не помню как передавать параметры, но что-то в этом духе:

php.exe yourscript.php "some.arj" "some.rar" и т.д.

Спустя 28 дней, 23 минуты, 45 секунд (3.12.2009 - 11:37) Gradus написал(а):
Ага smile.gif Опишу если кому нужно:
Качаем библиотеку arj, потом укажем в скрипте где он лежит.
http://narod.ru/disk/15765367000/arj.rar.html - библиотека, если не работает ищите в инете, на форум загрузить не могу.
arj.exe для винды, arj для *nix
Для сервера на windows

Сразу скажу через браузер не пробывал запускать т.к. с php не морочился smile.gif
Создаём файл формата .bat тем же блокнотом и вписываем туда
arj/windows/arj.exe
arj x -r file.arj
pause

arj/windows/arj.exe - адрес библиотеки
arj x -r file.arj команда для arj что бы разохивировать file.arj
pause - пауза
Так же можно через .bat обратитья к php
c:\WebServers\usr\local\php5\php.exe script.php c:\vcn.arj

Понятно что в начале сказали путь до php.exe второй это путь до нашего скрипта,последнее передаваемые параметры скрипту считайте это как get тока через пробел

Как принять в php файле переданные параметры:
$argc = переменная которая говорит сколько передалось ей параметров начиная с 1,аналог $argc=1+count($_GET);
$argv = массив держит в себе передавамые параметры начиная с 1 т.к. $argv[0]= это имя скрипта, аналог $_GET;

Для сервера на *nix

Для этого нужно что бы на хосте был shell
Создаём php файл:

<?php
$zap=shell_exec ("#!/usr/bin/arj\n arj e file.arj");
echo $zap; ?>

#!/usr/bin/arj - адрес где лежит скачанная библиотека лучше в bin и ложите
arj e file.arj команда разорхивации файла file.arj

Вот в принципе и всё под винду можете сами написать php не охото было заморачиваться с ней smile.gif

Спустя 5 дней, 1 час, 19 минут, 37 секунд (8.12.2009 - 12:57) Gradus написал(а):
Если помогло отпишитесь , буду знать что не зря расписывал smile.gif


_____________
ДАВАЙ ДЕНЬГИ
R543264623869
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.