Premier exemple
On va zipper une archive => enchaînement de 2 commandes dont la 2nde va utiliser le résultat de la première.
=> utilisation du caractère
| pour enchaîner :
<?php
$ret = system('tar cvf - /home/user/guig/*.xml | gzip -c > /home/user/guig/archive.zip ', $retval);
?>
Défaut de cette méthode : l'archive stocke le chemin complet où on a trouvé le fichier, c'est à dire :
/home/
/home/user/
/home/user/guig/
premier.xml
second.xml
troiz.xml
Ce qui peut s'avérer ne pas être très pratique quand on dés-archive (être obligé de remonter de n niveaux pour accéder aux fichiers).
Deuxième exemple
On va enchainer 3 commandes => 1 pour changer de répertoire + les 2 vues ci-dessus.
=> utilisation du caractère
; pour ce 2eme type d'enchainement :
$cmd = 'cd /home/user/guig/';
$cmd .= ' ; tar cvf - *.xml | gzip -c > /home/user/guig/archive.zip';
$ret = system($cmd, $retval);