vendredi 11 mars 2016

Php, passthru une autre fonction pour exécuter des programmes externes

La méthode la plus connue lorsqu'il s'agit d'exécuter un programme externe en php est sans doute la fonction exec().
Passthru permet quelque chose de très similaire tout en envoyant directement au navigateur les sorties du programme externe exécuté.

Cela peut être très pratique et permet d'éviter des manipulations de fichiers temporaires sur le serveur, lorsque l'utilisateur doit télécharger du contenu généré de façon dynamique.
Par exemple, je m'en sers souvent pour le téléchargement de sauvegardes de bases MySQL.
Avec passthru, quelques lignes comme celles ci dessous suffisent.

<?php
header('Content-Type: application/octet-stream');
header('Content-disposition: attachment; filename=sauvegarde.sql');
passthru('mysqldump -host MonServeur -u Utilisateur -pMotDePasse MaBaseDeDonnees');
?>

Aucun commentaire:

Enregistrer un commentaire