php скрипт для архивирования

Php скрипт для архивирования

В этом разделе помещены уроки по PHP скриптам, которые Вы сможете использовать на своих ресурсах.

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Совет: активация отображения всех ошибок в PHP

При поднятии PHP проекта на новом рабочем окружении могут возникнуть ошибки отображение которых изначально скрыто базовыми настройками. Это можно исправить, прописав несколько команд.

Агент

PHP парсер юзер агента с поддержкой Laravel, работающий на базе библиотеки Mobile Detect.

Источник

Создание ZIP-архива на PHP

Вчера на форуме у меня спросили про создание ZIP-архивов на PHP. Я немного подумал и понял, что это тема будет интересна большому числу людей, ведь ZIP-архивирование на PHP весьма популярная тема. И в этой статье я покажу пример, как создаётся ZIP-архив через PHP-скрипт.

Давайте я сразу приведу пример создания ZIP-архива, а потом его тщательно прокомментирую:

open(«archive.zip», ZIPARCHIVE::CREATE); //Открываем (создаём) архив archive.zip
$zip->addFile(«index.php»); //Добавляем в архив файл index.php
$zip->addFile(«styles/style.css»); //Добавляем в архив файл styles/style.css
$zip->close(); //Завершаем работу с архивом
?>

В результате выполнения данного скрипта появится ZIP-архив, у которого в корне будет лежать файл index.php, а также будет создана директория styles, в которой будет находиться файл style.css. Я думаю, что это всё очевидно и логично. А теперь комментирую, что мы с Вами делали:

Вот таким простым способом Вы можете создавать в автоматическом режиме ZIP-архивы с помощью PHP. В следующей статье мы с Вами разберём, как извлекать ZIP-архив через PHP.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 21 ):

Напишите статью о том, как создать дерево файлов в каталоге и в подкаталогах.

Не очень понятно, что означает «как создать дерево файлов»? Это просто вывести на страницу список всех каталогов, подкаталогов, файлов, файлов внутри подкаталогов и так далее. Вы это хотите?

Читайте также:  чем отмыть детали двигателя при ремонте в домашних условиях

Да, конечно так. Я пытался так сделать, но у меня работало с ошибками.

Хорошо, напишу в пятницу такую статью.

Это будет интересно. Спасибо.

А как в архив добавить папку с под папками и файлами чтоб не добавлять все файлы в ручную?

Так просто нельзя. Всё равно придется создавать создавать каждую папку как пустую и в неё уже добавлять файлы.

Нет расширения этого php_zip.dll

Это получается что вообще нельзя создавать архивы? Это ведь Денвер

Установите дополнительные модули, их можно скачать на официальном сайте.

Дали бы сразу и ссылку в этой статье на расширение.

Источник

Создание ZIP-архива каталога на PHP

ZIP-архивирование на PHP довольно популярная тема. В данной статье покажу пример, как создается ZIP-архив каталога через PHP-скрипт.

Давайте я сразу приведу пример создания ZIP-архива, а затем его тщательно прокомментирую:
В результате выполнения данного скрипта появится ZIP-архив, у которого в корне будет лежать файл ‘index.php‘. Я думаю, что это все очевидно и логично. А теперь комментирую, что мы с Вами делали:
1. Создали объект ZipArchive с помощью конструктора.

2. Создали архив с помощью метода Open объекта ZipArchive. Мы передали название архива archive.zip и константу ZIPARCHIVE::CREATE, которая сообщает, если архив не существует, то его надо создать.

3. Метод AddFile добавляет в архив файл ‘index.php‘, который находится в одной директории со скриптом.

4. Метод Close завершает работу с архивом. Всегда его выполняйте, чтобы освободить ресурсы компьютера, а также избежать проблем, связанных с работой этого скрипта и других скриптов, которым необходим доступ к этому архиву.

Вот таким простым способом можно создавать в автоматическом режиме ZIP-архивы с помощью PHP.

Если вы хотите скачать все содержание каталога, то вам необходимо создать архив файлов с сохранением структуры, а затем скачать его с сервера. Вот код:
Также необходимо написать о разархивирования ZIP-архив через PHP.

Порядок создания архива был прост: открыть, добавить файлы в архив, закрыть. Для извлечения ZIP-архива порядок очень похож: открыть, вытащить, закрыть. Фактически, меняется только центральная часть. Давайте разберем простой пример:
Таким образом, все файлы и папки, которые находятся в ZIP-архиве будут загружены в указанную директорию.

Источник

Как использовать Zip и Unzip файлы в PHP

Russian (Pусский) translation by Ellen Nelson (you can also view the original English article)

Сжатие файлов при их передаче через Интернет имеет множество преимуществ. В большинстве случаев, общий размер всех файлов в сжатом виде приятно уменьшается. Это означает, что вы сэкономите трафик, а пользователи получат более быструю скорость загрузки. Когда пользователи загрузят файл, они могут распаковывать его в любое время. Короче говоря, сжатие может сделать передача файлов через Интернет намного проще и для вас, и для ваших посетителей.

Один из факторов, из-за которого вы можете отказаться от сжатия файлов или этот процесс для вас очень утомителен — вы делаете это вручную. К счастью, у PHP есть множество расширений, которые специально предназначены для сжатия и извлечения файлов. Вы можете использовать функции, доступные в этих расширениях, для автоматического сжатия файлов на PHP.

В этом уроке вы научитесь применять zip и unzip — сжимать и извлекать файлы в/из zip-архив в PHP. Вы также узнаете, как удалить или переименовать файлы в архиве, не без их извлечения.

Читайте также:  как скрыть значок на рабочем столе windows 10

Сжатие файлов в PHP

Класс PHP ZipArchive обладает множеством свойств и методов, которые помогут вам сжсжимать и распаковывать все ваши файлы.

Сжатие отдельных файлов

Допустим, у вас есть веб-сайт, который позволяет пользователям скачивать файлы шрифтов вместе с их лицензиями. Файлы, подобные этим, станут прекрасными примерами автоматизированного архивирования на PHP. Следующий код показывает, как это делается.

Следует отметить, что исходные файлы находились внутри каталога fonts/Monoton. Однако, код PHP помещает его прямо в корень нашего архива. Вы можете изменить структуру каталогов, а также имена файлов, находящихся в архиве.

Сжатие нескольких файлов из каталога

Следующий фрагмент кода прояснит использование addGlob() и всех этих параметров.

В первом случае мы перебираем все файлы .jpg в каталоге lights и помещаем их в каталог light_wallpapers в архиве. Аналогично, мы перебираем все файлы .ttf в каталоге documents, а затем помещаем их в архив в папку с именем font_files. Наконец, мы перебираем сразу все файлы .jpg и .png в наших документах и помещаем их все вместе в каталог images.

Извлечение содержимого из архива

Структура каталогов и файлов будет сохранена во время извлечения, и файлы будут извлечены в соответствующие каталоги.

Если вы пропустите второй параметр, данный метод извлечёт все файлы из архива.

Больше контроля над архивами

Класс ZipArchive также имеет множество других методов и свойств, которые помогут вам получить больше информации о архиве перед извлечением всего его содержимого.

В следующем примере, мы удаляем все файлы из архива, содержащие слово Italic. Аналогичный код можно использовать для удаления всех файлов, которые не содержат определенного слова. Также, вы можете перебирать файлы и заменять определенное слово на другое.

В приведённом выше коде, мы используем deleteName() для удаления конкретного файла. Однако, вы можете использовать его для удаления всего каталога.

Заключительные мысли

С помощью count() и numFiles у вас будет больше контроля над отдельными файлами, а их переименование или удаление будет очень простым. Обязательно посмотрите документацию хотя бы один раз, чтобы узнать больше об этих функциях.

Источник

Работа с ZIP архивами в PHP

Расширение архива Zip в PHP используется для работы с Zip архивами и файлами, которые в них содержатся. Для использования этого расширения в PHP 5 необходимо активировать php_zip.dll внутри файла php.ini. В этой статье вы узнаете о том, как работать с файлами Zip архивов в PHP, используя ряд PHP демо-приложений. Вы научитесь: создавать Zip архивы;

Создание Zip архивов в PHP и добавление файлов

Для создания Zip архива в PHP можно использовать предопределенную константу ZIPARCHIVE::CREATE; архив будет создан, если он еще не существует. (Для добавления файлов внутрь архива можно использовать вышеописанные методы addFile и addFromString.) Первое демо-приложение (add_file_from_string.php) создает (если таковой еще не существует) или открывает Zip архив archive1.zip, а после добавляет в него файл, используя метод addFromString():

Здесь код для add_file_from_string.php:

С результаты выполнения add_file_from_string.php вы также можете ознакомиться на Рисунке 1.

Файловый текст test1.txt был успешно добавлен в archive1.zip

Рис.1 The archive1.zip

Второе демо-приложение (add_file_directory.php) также использует архив archive1.zip для печати всех характеристик объекта ZipArchive (статус, statusSys, numFiles, название файла, комментарии или специальные параметры, в нашем случае архивный комментарий и количество файлов), чтобы добавить пустой каталог под названием Subdirectory1. Это приложение также использует архив archive1.zip для добавления нового файла, используя метод addFile. Ниже содержатся прототипы методов addFile() и addEmptyDir():

Читайте также:  amediateka код активации бесплатно

Здесь код для add_file_directory.php:

С результатом листинга add_file_directory.php вы также можете ознакомиться на Рисунке 2:

ZipArchive Object ( [status] => 0 [statusSys] => 0 [numFiles] => 2 [filename] => D:\Apache Group\Apache2\htdocs\php\ZIP\archive1.zip [comment] => PHP ZIP ARCHIVE ) Создан новый каталог Комментарий: PHP ZIP ARCHIVE № файла:4

Рисунок 2. Характеристики объекта archive2.zip

Следующее демо-приложение служит для создания Zip архива archive2.zip, который включает два файла: test3.txt и test4.txt. (Информацию о том, как пользоваться этим приложением, вы сможете найти ниже.) Код для archive2.php:

Результат archive2.php. Вы также можете ознакомиться с результатами на Рисунке 3: Файловый текст test3.txt успешно добавлен в archive2.zip при использовании метода addFile Файловый текст test4.txt успешно добавлен в archive2.zip при использовании метода addFromString method.

Рисунок 3. Содержание archive2.zip

Извлечение Zip архива в PHP

Архивы archive1.zip и archive2.zip будут извлечены в папку archive, как показано на Рисунке 4. Код для extract_archives.php:

Результат extract_archives.php: archive1.zip и archive2.zip были извлечены в папку archive!

Рисунок 4. Содержимое папки archive после извлечения archive1 и archive2

Следующее демо-приложение (extract_to_specified_folder.php) извлекает содержимое Zip архива в специальную папку, используя вышеописанный метод extractTo(). Код для extract_to_specified_folder.php:

Результат extract_to_specified_folder.php. Вы также можете ознакомиться с результатами на Рисунке 5: Архив извлечен в папку ZIP_extract!

Рисунок 5. Папка ZIP_extract с файлами archive1

С результатами листинга filelist.php вы также можете ознакомиться с на Рисунке 6: Файлы test3.txt и test4.txt из архива archive2.zip успешно извлечены в указанный каталог ZIP_TEST!

Рисунок 6.Выбранные файлы, извлеченные из archive2 в назначеный каталог ZIP_TEST

Получение характеристик объекта на основе его индекса

Для получения характеристик отдельного файла можно использовать метод statIndex:

Следующее демо-приложение (statIndex.php) итерирует список файлов в archive2.zip и печатает характеристики для каждого из объектов. Код для statIndex.php:

Результат листинга 5.php:

Следующее демо-приложение (locate.php) также позволяет получать характеристики файла, при условии что archive1.zip содержит этот файл. Метод locateName возвращает индекс файла в архиве и использует предопределенную константу ZIPARCHIVE::FL_NODIR, которая игнорирует компонент каталог. Прототип константы ZIPARCHIVE::FL_NODIR :

Результат листинга locate.php:

Удаление и переименование Zip архивов в PHP

Для удаления или переименования Zip архивов в PHP можно использовать имя или индекс. Методы, которыми можно воспользоваться для этой цели, включают:

Следующее демо-приложение (rename.php) использует все вышеперечисленные методы для переименования файла с «index=3», как «renameByIndex.txt», и «test4.txt», как «renameByName.txt». Код для rename.php:

Результаты листинга rename.php. Вы также можете ознакомиться с результатами на Рисунке 7 и Рисунке 8: Файлы успешно переименованы в архиве archive2.zip!

Рисунок 7. Исходное содержимое archive2.zip

Рисунок 8. Содержание архива archive2.zip после того, как файлы были переименованы

Следующее приложение (delete.php) удаляет из archive2.zip файл с «index=1» и текстовый файл renameByIndex.txt, используя методы deleteIndex() и deleteName(). Код для delete.php:

Результаты листинга add_text_files.php: text_archive.zip успешно создан!

Рисунок 9. Группировка всех текстовых файлов из текущего каталога в новый архив text_archive.zip

Заключение

Как вы, наверное, заметили, изучая приложения, представленные в статье, работать с расширением архива Zip в PHP довольно просто и даже забавно. Все, что от вас требуется, это умение обращаться с методами расширения. В этом случае вы с успехом сможете осуществлять различные операции с Zip архивами.

Источник

Компьютерный онлайн портал