Пятница, 18.10.2019
Меню сайта
Авторизация
Логин:
Пароль:
Поиск
Статистика
Рейтинг@Mail.ru
Яндекс цитирования
Наша кнопка
HTMLPerlPHP
Прочее
Главная » Статьи » WEB Программирование » PHP

Использование потоков PHP
В PHP была введена концепция потоков PHP. С этого момента образовался общий знаменатель всех типов ресурсов: файлов, данных HTTP и FTP и даже архивных файловых форматов. Итак рассмотрим то, что связано с файлами - потоки сжатия.

Code
<?php
$filename = __FILE__;
$zipfile = "$filename.zip";
$data = file_get_contents(__FILE__);
echo 'Загруженный файл (размер: ' . strlen($data) . ').<br>';
file_put_contents("compress.zlib://$zipfile", $data);
echo ' Запаковаййный файл (размер: ' . filesize ($zipfile) . ').<br>';
$data = file_get_contents("compress.zlib://$zipfile");
echo 'Оригинальный размер файла: ' . strlen($data) . '.';
?>

С помощью одного из этих потоков можно использовать файлы ZIP. А при помощи псевдопротокола compress.zlib:// к файлам ZIP можно обращаться так же, как и к обычным файлам. Для этого в системе UNIX/Linux нужно задействовать переключатель конфигураций -with-gzip; в системе Windows эти библиотеки включены изночально. Далее вы можете использовать файлы с помощью, например , file_get_contents() и file_put_contents().
Привыполнении приведенного кода текущий файл загружается с помощью file_get_contents(), сжимается по алгоритму zip и записывается на жесткий диск с помощью file_put_contents(). После этого считывается сжатый файл с помощью file_get_contents() и сравниваются размеры файлов.
Как альтернативу можно использовать встроенные в PHP функции ZIP, реализованные посредством интерфейсной функции ZZIPlib. К сожалению, эта функция может только читать данные из файла ZIP, но она поддрживает наличие в архиве нескольких файлов.
Чтобы установить данное расширение, в системе Windows используется строка extension=php_zip.dll в php.ini или сконфигурируйте PHP с ключем -with-zip, указав путь к ZZIPlib. Чтобы использовать расширение, следует выполнить такие действия:
  • Открыть архив с использованием zip_open();
  • Интерактивно пройти по элементам архива с помощью zip_read();
  • Прочесть нужный файл с помощью zip_entry_open() и zip_entry_read().
    В приведенном ниже примере показывается содержимое архива ZIP и определяются имена и размеры всех файлов.

  • Code
    <?php
    $zipfile = dirname(__FILE__) . '/archive.zip';
    if ($zip = zip_open($zipfile)) {
    while ($file = zip_read($zip)) {
    printf('%s (%d)<br>', zip_entry_name($file), zip_entry_filesize($file));
    }
    zip_close($zip);
    }
    ?>
    Категория: PHP | Просмотров: 4633 | Добавил: mcreyt | Дата: 25.03.2010
    Похожие материалы:
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]