«PHP-Creative»

 

Меню сайта


Новые статьи



Статистика

Rambler's Top100

Рейтинг@Mail.ru

Сейчас на сайте: 1

Большие возможности маленького сайта (Работа с Zip архивами) Часть 2.

Дата добавления: 2009-04-18

Автор статьи: Феськов Кузьма

PCLZIP_OPT_SET_CHMOD

Дает возможность изменить атрибуты файла после его извлечения. На *NIX системах управление доступа и владелец файла (системный атрибут) не позволяют доступ к файлу отовсюду. В частности, пользователь, под которым запущен процесс PHP дает файлам только свои права, при определенных настройках они могут запрещать пользование файлами другими пользователями. Цель этого аргумента – назначить файлам нужные вам права.

Значение – одиночное октальное значение (например, 0777). $list = $archive->extract(PCLZIP_OPT_SET_CHMOD, 0777);

Этот аргумент может использоваться с методами 'extract();' и 'extractByIndex();'.

Примечание: этот аргумент не тестировался в полном объеме и носит статус ЭКСПЕРИМЕНТАЛЬНОГО.

PCLZIP_OPT_BY_NAME

Позволяет извлекать файлы из архива указывая их полное название. $archive = new PclZip('test.zip');
$rule_list[0] = 'data/file1.txt';
$rule_list[1] = 'data/file2.txt';
$list = $archive->extract(PCLZIP_OPT_BY_NAME, $rule_list);
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

Фильтр может быть массивом или текстовой строкой с перечислением через запятую. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_NAME,
"data/file1.txt,data/file2.txt");
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также: PCLZIP_OPT_BY_PREG, PCLZIP_OPT_BY_INDEX и PCLZIP_OPT_BY_EREG.

PCLZIP_OPT_BY_EREG

Этот параметр позволяет извлекать файлы и папки отфильтровывая их регулярным выражением. Используется функция PHP 'ereg()'. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_EREG, "txt$");
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_BY_PREG, PCLZIP_OPT_BY_NAME и PCLZIP_OPT_BY_INDEX.

PCLZIP_OPT_BY_PREG

Этот параметр позволяет извлекать файлы и папки отфильтровывая их регулярным выражением. Используется функция PHP 'preg()'. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_PREG, "txt$");
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_BY_EREG, PCLZIP_OPT_BY_NAME и PCLZIP_OPT_BY_INDEX.

PCLZIP_OPT_BY_INDEX

Позволяет извлекать файлы и папки указывая их индексы в архиве. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_INDEX, array ('0-4','2-7','10-33'));
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_BY_PREG, PCLZIP_OPT_BY_NAME и PCLZIP_OPT_BY_EREG.

PCLZIP_OPT_EXTRACT_AS_STRING

Позволяет извлечь файл в строковую переменную а не в файл.

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

Для примера:
показать 'readme' файл;
непосредственно выдать файл пользователю (смотри так же PCLZIP_OPT_EXTRACT_IN_OUTPUT).

Вы должны быть внимательными извлекая все файлы из архива. Это может привести к нехватке памяти. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_NAME, "data/readme.txt",
PCLZIP_OPT_EXTRACT_AS_STRING);
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
exit;
}
echo $list[0]['content'];

См. также PCLZIP_OPT_EXTRACT_IN_OUTPUT.

PCLZIP_OPT_EXTRACT_IN_OUTPUT

Этот аргумент дает вам возможность извлечь файл непосредственно на устройство вывода, подобно команде echo. $archive = new PclZip('test.zip');
$list = $archive->extract(PCLZIP_OPT_BY_NAME, "data/readme.txt",
PCLZIP_OPT_EXTRACT_IN_OUTPUT);
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_EXTRACT_AS_STRING.

PCLZIP_OPT_NO_COMPRESSION

Позволяет добавить файл в архив не сжимая его. $archive = new PclZip('test.zip');
$list = $archive->add("data/file.txt", PCLZIP_OPT_NO_COMPRESSION);
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

 

PCLZIP_OPT_COMMENT

Позволяет добавить комментарий к архиву. Если комментарий уже существует, заменит его. $archive = new PclZip('test.zip');
$list = $archive->create("data", PCLZIP_OPT_COMMENT, "Add a comment");
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_ADD_COMMENT и PCLZIP_OPT_PREPEND_COMMENT.

PCLZIP_OPT_ADD_COMMENT

Позволяет добавить комментарий к архиву. Если комментарий уже существует, добавит новый комментарий в конец существующего. $archive = new PclZip('test.zip');
$list = $archive->add("data", PCLZIP_OPT_ADD_COMMENT,
"Add a comment after the existing one");
if ($list == 0) {
echo "ERROR : ".$archive->errorInfo(true);
}

См. также PCLZIP_OPT_COMMENT и PCLZIP_OPT_PREPEND_COMMENT.

Просмотров: 9576

Комментарии к данной статье:

К данной статье нет комментариев.

Добавить новый комментарий:

Введите сумму чисел с картинки:

Реклама