Hoi,
ik ben bezig met een scriptje dat ZIPfiles unzipt... de zipfiles bevatten altijd 6 sub-ZIPfiles... in deze subZIPfiles zitten 1 of meer XML files met data... de max grootte van een XML file (uitgepakt) is 20Mb (ingepakt een compressie van ongeveer 95%)... de grootste hoofdZIPfile is totaal 29 Mb.... (dit om een indicatie te geven van de groottes)...
het scriptje werkte prima... eerst werd het 29 Mb bestand geunzipt en daarna de losse zipfiles die zich daarin bevonden.... daarna was het script klaar... als ik dan F5 doe in de browser gaat het script verder met de volgende ZIP file...
dit ging voor een 6-tal hood-ZIPfiles goed.... en daarna deed het script het niet meer....
de code:
toelichting op code:
- $outputdir is de directory waar alles in uitgepakt wordt... deze directory heeft rechten 777
- het gaat fout bij extractTo... als ik het resultaat van extractTo print, zegt hij TRUE... maar als ik dan in de outputdir kijk staan er geen bestanden
mijn eerste gedachte was dat de hoofdZIPfile die aan de beurt was corrupt was... ik ging dus de volgende verwerken... maar dat werkte ook niet... toen dacht ik, dan ga ik er 1 verwerken die al eerder gelukt is (outputdir leeggemaakt om "file_exists" problemen te voorkomen)... maar ook die gaf TRUE voor de extract, maar pakte geen bestanden uit....
mijn tweede gedachte toen was: misschien zijn de rechten van mijn directory ineens gewijzigd (zou heel gek zijn, maar toch maar even checken).. maar nee, die staan nog steeds op 777...
de derde gedachte was dat ik geen schijfruimte meer had op mijn account... maar ik heb nog 25% van 6 Gb ruimte over... dus dat kan het ook niet zijn... het bestand dat aan de beurt was was slechts 400 kb groot... een van de kleinere bestanden uit de reeks
toen ben ik gaan googlen... een alternatieve oplossing was:
maar helaas, het system commando is door mijn hosting provider geblokkeerd (lijkt me ook terecht).
het enige dat in mijn hoofd dan overblijft is dat ik op 1 of andere manier "te veel" bestanden heb ge-unzipt en daarom niet meer "mag" unzippen... ik kan alleen niet verklaren waarom en vooral hoe.... misschien dat ik teveel of tevaak de /tmp map heb gebruikt (weet niet of ZIParchive deze gebruikt?)... als ik een listing (via php code, via FTP kan ik niet bij /tmp en via SSH mag ik niet inloggen) doe van /tmp krijg ik 774 bestanden... waarvan de meeste php-sessie-id's zijn en captcha gifs... die laatste (en ook nog een hoop andere files) komen in ieder geval niet van mijn site af... die gebruik ik niet....
hoe dan ook, ik heb geen flauw idee wat ik nu nog kan proberen om het script werkend te krijgen...
heeft iemand nog een idee of een wijsheid?
ik ben bezig met een scriptje dat ZIPfiles unzipt... de zipfiles bevatten altijd 6 sub-ZIPfiles... in deze subZIPfiles zitten 1 of meer XML files met data... de max grootte van een XML file (uitgepakt) is 20Mb (ingepakt een compressie van ongeveer 95%)... de grootste hoofdZIPfile is totaal 29 Mb.... (dit om een indicatie te geven van de groottes)...
het scriptje werkte prima... eerst werd het 29 Mb bestand geunzipt en daarna de losse zipfiles die zich daarin bevonden.... daarna was het script klaar... als ik dan F5 doe in de browser gaat het script verder met de volgende ZIP file...
dit ging voor een 6-tal hood-ZIPfiles goed.... en daarna deed het script het niet meer....
de code:
PHP:
1
2
3
4
5
6
| $zip = new ZipArchive(); $zipresult = $zip->open($main_zipfile); if ($zipresult){ $zip->extractTo($outputdir); $zip->close(); } |
toelichting op code:
- $outputdir is de directory waar alles in uitgepakt wordt... deze directory heeft rechten 777
- het gaat fout bij extractTo... als ik het resultaat van extractTo print, zegt hij TRUE... maar als ik dan in de outputdir kijk staan er geen bestanden
mijn eerste gedachte was dat de hoofdZIPfile die aan de beurt was corrupt was... ik ging dus de volgende verwerken... maar dat werkte ook niet... toen dacht ik, dan ga ik er 1 verwerken die al eerder gelukt is (outputdir leeggemaakt om "file_exists" problemen te voorkomen)... maar ook die gaf TRUE voor de extract, maar pakte geen bestanden uit....
mijn tweede gedachte toen was: misschien zijn de rechten van mijn directory ineens gewijzigd (zou heel gek zijn, maar toch maar even checken).. maar nee, die staan nog steeds op 777...
de derde gedachte was dat ik geen schijfruimte meer had op mijn account... maar ik heb nog 25% van 6 Gb ruimte over... dus dat kan het ook niet zijn... het bestand dat aan de beurt was was slechts 400 kb groot... een van de kleinere bestanden uit de reeks
toen ben ik gaan googlen... een alternatieve oplossing was:
PHP:
1
| system("unzip " . $main_zipfile . " -d " . $outputdir); |
maar helaas, het system commando is door mijn hosting provider geblokkeerd (lijkt me ook terecht).
het enige dat in mijn hoofd dan overblijft is dat ik op 1 of andere manier "te veel" bestanden heb ge-unzipt en daarom niet meer "mag" unzippen... ik kan alleen niet verklaren waarom en vooral hoe.... misschien dat ik teveel of tevaak de /tmp map heb gebruikt (weet niet of ZIParchive deze gebruikt?)... als ik een listing (via php code, via FTP kan ik niet bij /tmp en via SSH mag ik niet inloggen) doe van /tmp krijg ik 774 bestanden... waarvan de meeste php-sessie-id's zijn en captcha gifs... die laatste (en ook nog een hoop andere files) komen in ieder geval niet van mijn site af... die gebruik ik niet....
hoe dan ook, ik heb geen flauw idee wat ik nu nog kan proberen om het script werkend te krijgen...
heeft iemand nog een idee of een wijsheid?