PHP - zip extract

Иван

Новичок
PHP - zip extract

Добрый день...

У меня ситуация...

Есть архив с данными (word, exlec, jpg, gif, png и т.д).

Нужно извлечь из этого архива только картинки?

Как это сделать?

Ниже представлени код, который тестирую... (Проблема: он мне извлекает весь архив целиком со всеми данными).

=========================================================
PHP:
#----Вывод ошибок----#
Error_Reporting(E_ALL & ~ E_NOTICE);

// 1 – означает возобновление извлечения файла 
//0 – пропустить файл, переходим к следующему файлу
//2 – пропустить файл и остановить распаковку, даже если не достигнут конец архива. 

require_once('pclzip.lib.php');

 $archive = new PclZip('1.zip'); 


  function myPreExtractCallBack($p_event, &$p_header)
  {
    $info = pathinfo($p_header['filename']);

    // ----- jpg файлы распаковываем в папку 'images'
    if ($info['extension'] == 'jpg') {
      $p_header['filename'] = '11/'.$info['basename'];
      return 1;
    }
    // ----- остальные файлы просто распаковываем
    else {
      return 2;
    }
  }

  $list = $archive->extract('Моя папка', 'folder',
                            PCLZIP_CB_PRE_EXTRACT, 'myPreExtractCallBack');
 

Anarki

Новичок
PHP:
<?php
require_once('pclzip.lib.php');
$archive = new PclZip('1.zip');

if ($archive->extract(PCLZIP_OPT_PATH, 'images',PCLZIP_OPT_BY_PREG,'/.*?\.jpg$/i') == 0) {
        die("Error : ".$archive->errorInfo(true));
}
?>
 

Иван

Новичок
PHP:
<?php 
require_once('pclzip.lib.php'); 
$archive = new PclZip('1.zip'); 

if ($archive->extract(PCLZIP_OPT_PATH, 'images',PCLZIP_OPT_BY_PREG,'/.*?\.jpg$/i') == 0) { 
        die("Error : ".$archive->errorInfo(true)); 
} 
?>
Делаю так, но она мне всеравно извл. весь архив, вместо того, чтобы извлечь только jpg!
 

Anarki

Новичок
А хз почему так, у меня извлекает только жпеги

Для jpg,png,gif, etc

PHP:
/.*?\.(jpe{0,1}g|png|gif)$/i
Или как вариант если в PclZip есть callbacks, то можно через GDшную getimagesize() проверять картинка это или нет
 

Иван

Новичок
Anarki напиши пожалуйста весь код, который используешь для картинок на извлечение...?

И если можно ссылку на новые библиотеки zip...

Может быть я скачал что-то из разряда "нето"?
 

Иван

Новичок
Не пойму поч. не работает, уже 3 часа пробую...

-~{}~ 22.07.07 01:29:

Статью про zip читал...

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

SiMM

Новичок
Специально слил версию 2.6, создал архив 1.zip из файлов
Код:
gnu-lgpl.avi
gnu-lgpl.doc
gnu-lgpl.txt
gnu-lgpl.xls
readme.gif
readme.jpeg
readme.jpg
readme.png
запустил вышеприведённый код, создалась папка image с единственным файлом - readme.jpg. Удалил папку, изменил регулярник на
/\.(gif|jpe?g|png)$/i, запустил тот же скрипт, получил в папке images файлы
Код:
readme.gif
readme.jpeg
readme.jpg
readme.png
Вывод - что-то Вы делаете не так, как здесь описываете.
 

Иван

Новичок
Специально слил версию 2.6, создал архив 1.zip из файлов

- ВОТ ПОСЛЕ ЕТОГО, ОНА У МЕНЯ РАБОТАТЬ СТАЛА, так как надо....

У меня до этого была Библиотека, в которой только 2500 строк, а ту кот. мне дале , - там аж почти 6000 строк....

СПАСИБО!

-~{}~ 22.07.07 12:42:

Регулярные выражения - сила!
 
Сверху