Welcome to PHPClub
В эти выходные на LinuxFest v.12! Поляна от PHPClubа Мастер-классы по Javascript, AJAX/COMET, jQuery!
Боишься нашего дизайна?
поиск:
   
 Начало | Настройки | Расширенный поиск | РегистрацияПосмотреть новые сообщения 
  
PHP Club форумы: > Вопросы по программированию на РНР > Проблема с функциями RAR
 

Автор
Тема ОТВЕТИТЬ
apustilnic
Новичок

На форуме с: Jul 2007
Cообщений: 17
Город:
Проблема с функциями RAR

Доброго времени суток!

У меня стоит PHP 5.2.0
Скачал экстеншен php_rar.dll такой же версии. ($Revision: 1.18 $)
Раскоментировал его в php.ini
Рестартонул, после сего phpinfo выдает наличие rar, т.е. все ok

Однако простой скрипт Код (php):


$rar_file 
rar_open("example.rar") or die("Невозможно открыть архив");

$entries rar_list($rar_file);

foreach (
$entries as $entry) {
    echo 
'Файл: ' $entry->getName() . "\n";
    echo 
'Размер сжатого элемента: ' $entry->getPackedSize() . "\n";
    echo 
'Размер в распакованном состоянии: ' $entry->getUnpackedSize() . "\n";

    
$entry->extract('/dir/extract/to/');
}

rar_close($rar_file);


Ругается:
Warning: rar_open() [function.rar-open]: failed to open example.rar in D:\Webservers\home\test\www\test2.php on line 6

Файл example.rar там же где и скрипт. Я его создал WinRAR-ом.
Причем ф-ция

$rar_file
=fopen("example.rar""r");
его открывает.

Подскажите, плз, где ошибка.
Спасибо!

Отредактировано apustilnic 05.07.07 в 11:39

Old Post 05.07.07 11:37 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
tony2001
TeaM PHPClub

На форуме с: Jun 2000
Cообщений: 8777
Город: msk.ru/kh.ua

указывай полный путь.
всегда.

Old Post 05.07.07 11:47 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Wicked
Moderator

На форуме с: Oct 2004
Cообщений: 2861
Город: Novosibirsk, Russia

вроде все делаешь правильно...
так что догадки такие: м.б. версии несовместимы, м.б.php_rar.dll плохо работает с какими-нибудь типами архивов, например solid, м.б. архив поломан, м.б. это вообще не архив, ...

tony2001
в примере в мане - путь относительный.

Old Post 05.07.07 12:05 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
apustilnic
Новичок

На форуме с: Jul 2007
Cообщений: 17
Город:

Действительно, забыл.

Указал: rar_open($_SERVER['DOCUMENT_ROOT']."/example.rar")

и все заработало.

tony2001:
Спасибо!

Old Post 05.07.07 12:06 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
iceman
говнокодер!

На форуме с: Mar 2007
Cообщений: 682
Город: РБ, Уфа

а ты пробовал указать полный путь?
ведь file() это не rar_open()

-~{}~ 05.07.07 15:28:

пока покурил уже ответили +)

Old Post 05.07.07 12:28 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
tony2001
TeaM PHPClub

На форуме с: Jun 2000
Cообщений: 8777
Город: msk.ru/kh.ua

Wicked

относительный путь работает прекрасно в большинстве случаев.

просто в многопоточном варианте PHP не делает chdir(<директория скрипта> ), а только "эмулирует", т.к. один поток делающий chdir() меняет cwd для всех.
сам PHP, конечно, об этом знает и использует записанный (as in "у меня все ходы записаны!") cwd, поэтому fopen() работает.

но библиотека unrar вообще не в курсе и ищет не в текущей директории скрипта, а в текущей директории процесса и по понятным причинам не находит.
естественно, это касается всех сторонних библиотек, не только unrar.

отсюда вывод - по возможности всегда и везде указывайте абсолютный путь.

Old Post 05.07.07 12:46 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Angerslave
Активист PHPClub

На форуме с: Jan 2007
Cообщений: 371
Город: Омск

tony2001, спасибо за исчерпывающий комментарий.

Old Post 05.07.07 14:33 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
tony2001
TeaM PHPClub

На форуме с: Jun 2000
Cообщений: 8777
Город: msk.ru/kh.ua

не за что.
спрашивайте еще.

Old Post 05.07.07 14:37 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Wicked
Moderator

На форуме с: Oct 2004
Cообщений: 2861
Город: Novosibirsk, Russia

tony2001
спасибо за объяснения.

А что за многопоточный вариант использования пхп?

Old Post 05.07.07 14:55 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
tony2001
TeaM PHPClub

На форуме с: Jun 2000
Cообщений: 8777
Город: msk.ru/kh.ua

threadsafe? multithreaded? ZTS?
многопоточный вебсервер?

я не знаю как это объяснить в двух словах..

Old Post 05.07.07 15:08 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Wicked
Moderator

На форуме с: Oct 2004
Cообщений: 2861
Город: Novosibirsk, Russia

tony2001
спасибо, попробую разобраться Хотя так вот, будучи не в теме, не могу в гугле отделить результаты по теме от мусора...

Old Post 05.07.07 15:14 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
tony2001
TeaM PHPClub

На форуме с: Jun 2000
Cообщений: 8777
Город: msk.ru/kh.ua

http://ru.wikipedia.org/wiki/Многопоточность

Old Post 05.07.07 15:46 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Время GMT. Текущее время 23:28. Подписаться на Тему | Версия для Печати
 

PHP Club форумы: > Вопросы по программированию на РНР > Проблема с функциями RAR
 
Оценить:
 
 
 
 

 © 1997-2010 PHPClubTeam      

Powered by vBulletin Copyright © 2000-2010 Jelsoft Enterprises Limited.