Toon posts:

[php] unzip met

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb als code:
PHP:
1
<?$filename = 'test2.zip';$exec = system("/usr/local/bin/unzip -p $filename"); echo $exec;?>

Als ik nu een zip file geef met daarin 2 textfiles dan krijg ik de inhoudt van die 2 textfiles achter elkaar op het scherm te zien..... dat is niet de bedoeling.

Hoe kan ik unzippen zodat ik weet welk stuk text bij welk bestand hoort? Ik wil namelijk de files gewoon opslaan op de server. of moet ik het dan anders doen?

Verwijderd

gebruik exec() of backticks "`"

Verwijderd

man unzip

[...]
-p extract files to pipe (stdout). Nothing but the
file data is sent to stdout, and the files are
always extracted in binary format, just as they are
stored (no conversions).
[...]

Waarom gebruik je die -p?

Verwijderd

Topicstarter
Dat heb ik ergens vandaan gehaald. Als ik die -p weghaal dan krijg ik de naam van de zip file te zien (dat moet ik ook niet hebben)

Dacht dat ik hier al wat beter mee zat...

Ik ben trouwens geen linux persoon en weet dus eigenlijk niks van het unzippen af (op linux) wat is dan het normale linuc commando dat ik moet geven?

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 03-09 22:43
Op donderdag 16 mei 2002 12:31 schreef jeroenr het volgende:
man unzip

[...]
-p extract files to pipe (stdout). Nothing but the
file data is sent to stdout, and the files are
always extracted in binary format, just as they are
stored (no conversions).
[...]

Waarom gebruik je die -p?
Waarschijnlijk naar aanleiding van deze post: [topic=466539/1/400]

Verwijderd

Topicstarter
:D kan hier ook niks geheim houden ;)

Maar inderdaad ik heb dat daarvandaan. Ik heb ook al op andere plaatsen gezocht maar ik vind alleen maar oplossingen met zlib en dit lijkt me makkelijker....

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 13:44
De enige oplossing lijkt me eerst de inhoud van het archief te listen (met -l) en vervolgens de bestanden één voor één uit te pakken. Als je weet dat je alle bestanden nodig hebt, kun je waarschijnlijk nog beter het hele bestand uitpakken in een tijdelijke directory (eventueel zonder subdirectories) en de bestanden uit die directory lezen.

Dit laatste is vrij efficient, mits je een groot deel van de uitgepakte files ook daadwerkelijk nodig hebt.

Verwijderd

Op donderdag 16 mei 2002 12:33 schreef ShockWave het volgende:
Dat heb ik ergens vandaan gehaald. Als ik die -p weghaal dan krijg ik de naam van de zip file te zien (dat moet ik ook niet hebben)

Dacht dat ik hier al wat beter mee zat...

Ik ben trouwens geen linux persoon en weet dus eigenlijk niks van het unzippen af (op linux) wat is dan het normale linuc commando dat ik moet geven?
Tik eens op de commandline "man unzip". Daar vind je een hoop info over het commando. O.a.:

unzip will list, test, or extract files from a ZIP
archive, commonly found on MS-DOS systems. The default
behavior (with no options) is to extract into the current
directory (and subdirectories below it) all files from the
specified ZIP archive.

Dus zonder opties zou het moeten werken, misschien moet je met -d nog een directory aangeven waar de bestanden heen moeten.

  • flat
  • Registratie: Mei 2000
  • Niet online
wil je dus gewoon die zip uitpakken naar een andere plek op de server?

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Je krijgt niet alleen de naam terug waneer je de -p optie weglaat. Dat is gewoon wat naar de stdout wordt gestuurd. Als het goed is staan de uitgepakte bestanden nu op de schijf van de server.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
:o :o Ik schaam me en diep.....

Ik bedacht me net dat de permissies niet goed stonden van die directory (CHMOD) write permissie voor anonymous op die directory....

sorry mijn fout.
Pagina: 1