[php] lijst van bestanden in zip naar array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
via de volgende code krijg ik een lijst te zien van wat er allemaal in een bepaalde zip staat:
PHP:
1
2
3
4
5
6
7
        $filename = "/var/www//ZIP/02.zip";
        
        $command = "unzip -ljo $filename  ";
        
        echo "<pre>";
        passthru($command);
        echo "</pre>";


dit zorgt ervoor dat ik een mooi lijstje krijg met alle gegevens erin die ik eruit wil halen. Hij ziet er zo ongeveer uit:
code:
1
2
3
4
5
6
7
8
Archive:  /var/www/ZIP/02.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
  1619101  02-24-05 19:52   Alexandrie 1575.jpg
   362936  02-24-05 19:43   bce.bmp
   501545  02-24-05 19:52   New Folder/08a---The-Second-Punic-War.gif
 --------                   -------
  2483582                   3 files


nu wil ik alle bestandsnamen in een array gooien dit om ze dadelijk een voor 1 te laten uitpakken en bepaalde checks te doen en bepaalde acties erachteraan....

Als ik eenmaal die bovenstaande gegevens in een array heb staan bijvoorbeeld per regel of uberhaupt in 1 variabele dan kan ik doormiddel van een regexp de bestandsnamen er wel uit filteren (hopelijk).
Maar daar ligt het probleem dan ook. Ik krijg bovenstaande niet in een var.

als ik het volgende doe:
PHP:
1
$gegevens = passthru($command);

dan neemt hij niks over in de var $gegevens. Als ik er een $system($command) van maak dan spuugt hij ook alleen de laatste regel uit.. duh want dat staat ook in de beschrijving.

hoe krijg ik dus al die zooi in een var? of misschien ben ik echt vreselijk moeilijk aan het doen om de bestandsnamen in een var te krijgen.........

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • MTWZZ
  • Registratie: Mei 2000
  • Laatst online: 13-08-2021

MTWZZ

One life, live it!

misschien met exec?
PHP:
1
2
3
4
$output=array();
exec("unzip -l file.zip",$output);

print_r($output);

Nu met Land Rover Series 3 en Defender 90


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
what the hell nu doet ie het wel...... dacht dat exec een synoniem van system was... en dat als je een $output aangaf dat hierin de return value gegooid werd... hmmm

thanx anywayz...

nu maar snel de reg-expen weer in de kladden grijpen....

[ Voor 11% gewijzigd door hobbeldebobbel op 22-06-2005 11:57 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • gibraltar
  • Registratie: Augustus 2004
  • Laatst online: 15-07 15:52
Misschien is output buffering iets?

http://nl2.php.net/manual/nl/function.ob-start.php

Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
hmm output buffering zou ook kunnen werken maar is een omslachtige methode om het te doen als exec blijkbaar wel werkt :)

iemand ideetjes voor die regexp... grr blijf het kolere dingen vinden :(

hier zou een slimme opmerking kunnen staan
maar die staat er niet


Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 07-07 20:37

xces

To got or not to got..

ouw! Sorry maar dit is een hele (slimme) maar ranzige oplossing.

Kijk eens naar PCLzip, die doet alles wat je wilt (en meer). Site is een beetje bagger en traag maar ik gebruik deze library o.a. zodat mijn gebruikers fotos in een zip file kunnen uploaden waarna ze worden verwerkt door mijn CMS. Verder maak ik er (soms) backups mee etc etc.

Hieronder een kant en klaar voorbeeld van de website:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 <?php
  include_once('pclzip.lib.php');
  
  $zip = new PclZip("test.zip");
  
  if (($list = $zip->listContent()) == 0) {
    die("Error : ".$zip->errorInfo(true));
  }
  
  for ($i=0; $i<sizeof($list); $i++) {
    for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {
      echo "File $i / [$key] = ".$list[$i][$key]."<br>";
    }
    echo "<br>";
  }
?> 

[ Voor 41% gewijzigd door xces op 22-06-2005 12:15 . Reden: Voorbeeld toegevoegd ]


Acties:
  • 0 Henk 'm!

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
kijk kijk kijk kijk... dat zijn de handige librarys..... is inderdaad precies wat ik zocht... wilde het zelf gaan maken... maar dit is nog makkelijker :)
dit had ik nooit gedacht dat iemand zoiets al gedaan had... geweldig!

een beetje vanjezelf en een beetje van maggiePhpConcept


thanx

[ Voor 31% gewijzigd door hobbeldebobbel op 22-06-2005 12:23 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet

Pagina: 1