Большие возможности маленького сайта (Работа с Zip архивами) |
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Возвратные функции.Возвратные функции – специфические аргументы, потому что их значение –
название функции. Эти функции имеют строгое описание и которого вы должны
придерживаться. Действия, которые могут производить эти функции разграничены.
Внутренний алгоритм функции может быть любым, но он должен уважать определенный
список параметров и возвращаемых значений. Однако, функция должна уважать
основную обработку метода, некоторое действия могут с этим столкнуться
(например, удаление файла архива в течении процесса). PCLZIP_CB_PRE_EXTRACT Этот дополнительный аргумент дает вам возможность выполнить определенную функцию перед тем как распаковать файл. Эта функция может изменять процесс извлечения файла двумя способами:
Чтобы быть точными: эта функция применяется после дополнительных аргументов PCLZIP_OPT_PATH, PCLZIP_OPT_ADD_PATH, PCLZIP_OPT_REMOVE_PATH или PCLZIP_OPT_REMOVE_ALL_PATH, но перед конкретной проверкой (файл не существует, файла нет в текущей папке, и так далее). Функция должна принимать в качестве аргументов следующие параметры:
Когда метод вызывает возвратную функцию, он делает это следующим образом:
Функция может менять только поле “filename” (имя файла) в массиве $p_header. Это дает вам вам возможность изменить имя файла после распаковки. Все остальные параметры массива только для чтения. Функция должна возвратить 2, 1 или 0 ($result). Другие значения зарезервированы на будущее. 1 – означает возобновление извлечения файла (возможно, с измененным именем файла). 0 – пропустить файл, переходим к следующему файлу. 2 – пропустить файл и остановить распаковку, даже если не достигнут конец архива.
PCLZIP_CB_POST_EXTRACT Этот дополнительный аргумент дает вам возможность добавить постобработку файлов во время распаковки, вызывая функцию возврата после извлечения каждого файла. Эта функция не может изменить процесс извлечения, но может выполнить определенные действия с распакованным файлом, например, переименование или удаление. Функция должна принимать в качестве аргументов следующие параметры:
Функция должна возвратить 1 или 2 ($result). Остальные значения зарезервированы на будущее. 1 – извлекаем дальше. 2 – останавливаем извлечение.
Таким образом, эта функция производит действия над распакованным файлом, а затем удаляет его. Примечание, в данном конкретном примере логичнее использовать
параметр PCLZIP_OPT_EXTRACT_IN_OUTPUT, так как он не создает промежуточного
файла. PCLZIP_CB_PRE_ADD Этот параметр позволяет вам добавить обработку файла перед помещением его в архив. Вы можете, например:
Чтобы быть точными: эта функция применяется после дополнительных аргументов PCLZIP_OPT_PATH, PCLZIP_OPT_ADD_PATH, PCLZIP_OPT_REMOVE_PATH или PCLZIP_OPT_REMOVE_ALL_PATH, но перед конкретной проверкой (файл не существует, файла нет в текущей папке, и так далее). Функция должна принимать в качестве аргументов следующие параметры:
Когда метод вызывает возвратную функцию, он делает это следующим образом:
Функция может менять только поле “filename” (имя файла) в массиве $p_header. Это дает вам вам возможность изменить имя файла перед запаковкой. Все остальные параметры массива только для чтения. Функция должна возвратить 1 или 0 ($result). Другие значения зарезервированы на будущее. 1 – означает возобновление добавления файла (возможно, с измененным именем файла). 0 – пропустить файл, переходим к следующему файлу.
PCLZIP_CB_POST_ADD Этот параметр позволяет запустить нужную функцию после добавления файла. Эта функция не может повлиять на добавление файла, но может произвести действия с файлом на диске, например переименовать или удалить. Функция должна принимать в качестве аргументов следующие параметры:
Функция должна возвратить 1. Остальные значения зарезервированы на будущее.
|