Ik download via een affiliate HTTPS request een gz feed.
Dat gaat prima en staat netjes op de site en geef het bestand 777 rechten wat ook goed gaat.
Als ik hem vervolgens wel uitpakken, dan komen de problemen:
feed55import.csv word aangemaakt maar is leeg en krijgt initeel 0664 rechten
De hele feeds DIR staat op 777.
Als ik feed55import.csv met fopen eerst aanmaak met 777 rechten en hem dan wil uitpakken blijf hij 0.
Het bestand als ik hem in windows gewoon open kan ik hem openen en het is een csv bestand.
kan "system" gunzip wel vinden? Wat als je daar het hele path naar toe opgeeft:
iets als /usr/bin/gunzip
hoewel ik zou denken dat in het geval hij hem niet vindt, ook het resulterende bestand niet aangemaakt zou worden.
[size=xsmall]Toevoeging op 25/04/2019 09:53:15:[/size]
PS: 777 is natuurlijk wat veel voor een zip-bestand. R (4) zou genoeg moeten zijn om hem te kunnen lezen. Moet hij ook verwijderd kunnen worden, dan is W, 6, nodig. Maar úitvoerbaar is niet nodig.
Dan pakt hij het volgende bestand uit zonder extentie: feed55import
Dan moet ik er met rename het bestand wijzigen naar: feed55import.csv . Het is namelijk een csv bestand.
Maar waarom lukt dit niet om het direct naar csv te exporteren met
Gemakkelijkst is misschien om te bedenken dat er meer dan 1 file in een zip bestand kan zitten.
Je kunt dus ook niet de "output" van gunzip ergens heen sturen.
De output van gunzip zou hooguit iets moeten bevatten als "ik heb 2 files extracted" of iets dergelijks.
gunzip maakt zelf de files aan.
Afhankelijk van de opgegeven switches kan hij de oorspronkelijke file.gz weggooien of behouden.
De output files komen in de betreffende directory of zelfs in een directory een level dieper.
Ik gebruik doorgaans tar, maar dat doet iets als:
tar xvfz php-7.3.0.tar.gz
maakt een map aan php-7.3.0 en daarin staan alle files en mappen van het archief.
system werkt wel zeker zoals je al zei hij maakt het bestand namelijk wel aan met gunzip
Komt dat niet omdat je de output redirect met > naar een output-bestand? Mogelijk wordt er al meteen een bestand aangemaakt om deze plek te reserveren. Al heb ik weinig verstand van linux/unix komt mij dit over als logisch.
Ik denk dat @Ariën en @Ivo ook een punt hebben. Op het moment dat je dit soort commando's via PHP gaat uitvoeren werkt alles meestal net iets anders dan wanneer je dit rechtstreeks via de prompt doet.
Probeer anders eens het volgende:
<?php
system('which gzip');
?>
Oftewel: waar bevindt gzip zich indien je deze via een shell commando probeert uit te voeren.
Dit levert vervolgens bijvoorbeeld: /bin/gzip
Gebruik dit volledige pad in de aanroep van gzip in het shellcommando in plaats van simpelweg "gzip".