J'écris un script PHP qui télécharge une série de fichiers générés (à l'aide de wget
) dans un répertoire, puis zippe puis, à l'aide de la commande Zip
.
Les téléchargements fonctionnent parfaitement et la compression fonctionne principalement. Je lance la commande:
Zip -r /var/www/oraviewer/rgn_download/download/fcst_20100318_0319.Zip /var/www/oraviewer/rgn_download/download/fcst_20100318_0319
qui donne un fichier Zip avec tous les fichiers téléchargés, mais il contient les répertoires complets /var/www/oraviewer/rgn_download/download/
, avant d’atteindre le répertoire fcst_20100318_0319/
.
Il me manque probablement juste un indicateur, ou quelque chose de petit, dans la commande Zip, mais comment l'obtenir pour qu'il utilise fcst_20100318_0319/
comme répertoire racine?
Je ne pense pas que Zip ait un drapeau pour le faire. Je pense que le seul moyen est quelque chose comme:
cd /var/www/oraviewer/rgn_download/download/ && \
Zip -r fcst_20100318_0319.Zip fcst_20100318_0319
(La barre oblique inverse est juste pour la clarté, vous pouvez l'enlever et tout mettre sur une ligne.)
Puisque PHP exécute la commande dans un sous-shell, cela ne changera pas votre répertoire actuel.
J'ai aussi le faire fonctionner en utilisant cette commande
exec ('cd'. $ _ SERVER ['DOCUMENT_ROOT']. '&& Zip -r com.Zip "./"');
cd /home/public_html/site/upload/ && Zip -r sub_upload.Zip sub_upload/