2012-04-12 4 views
0

Есть ли поддерживаемый PHP способ работы с архивом файлов (.zip, .tar или любой другой архив), так же как мы работаем с папками?PHP, работающий с файлами внутри архива

Например, если в нашем корневом каталоге «/ www /» есть архив «/www/catalog.zip», содержащий файлы .php, можно ли включить этот архив в PHP, чтобы PHP знал, что находится внутри архива, и если требуется включить файл (например, test.php, который находится внутри catalog.zip), мы можем сделать это, не извлекая архив «catalog.zip»?

Не уверен, что если что-то подобное существует (конечно, можно было бы построить приложение, чтобы сделать что-то подобное, но это будет ресурс, если сделано с PHP с использованием экстракта чтения/удалить)

или может быть там что-то подобное, что можно использовать?

+2

Там нет никакого способа для любого приложения работать с данными любого архивного файла без его извлечения. Это своего рода точка архива. Это не совсем верно для несжатых архивов, таких как «tar», но при поиске правильных начальных и конечных точек в архиве для чтения вы эффективно извлекаете файл. – DaveRandom

+0

Я понимаю, что Дэйв, но если что-то подобное возможно, то поддерживать и работать с файлами (особенно загружать) было бы проще, представьте, что вы работаете с большим проектом с более чем 1000 файлами или даже с ckeditor (количество файлов, которое оно имеет (даже если он составляет всего около 5 мб) занимает около 30 минут для загрузки с медленным подключением) :) – Alex

ответ

0

Может быть что-то вроде ZipArchive::getStream вместе с stream_get_contents получит вам содержимое файла, но я не знаю, как вы бы включить его - не думаю, что PHP может include из стандартного ввода

+0

В этом примере вы не будете «включать» его, кроме 'eval()' (evil). Но вы все равно не будете этого делать, вы просто сохраните файлы в каталоге и не будете их архивировать. – DaveRandom

Смежные вопросы