Jean-Marie Renouard LightPath 2014©
Le logo PHP est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
Lecture un répertoire avec PHP Envoi de fichier avec PHP Récupération de fichier avec PHP Lecture un répertoire avec PHP/Curl Envoi de fichier avec PHP/Curl Récupération de fichier avec PHP/Curl Possibilité avancée LightPath 2014© - http://www.jmrenouard.fr 3
LightPath 2014© - http://www.jmrenouard.fr 4
<?php // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // Récupération du contenu d'un dossier $contents = ftp_nlist($conn_id, "."); // Affichage de $contents var_dump($contents); ?> LightPath 2014© - http://www.jmrenouard.fr 5
<?php $file = 'somefile.txt'; $remote_file = 'readme.txt'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) ; // Charge un fichier if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "Le fichier $file a té chargé avec succèsn"; } else { echo "Il y a eu un problème lors du chargement du fichier $filen"; } // Fermeture de la connexion ftp_close($conn_id); ?> LightPath 2014© - http://www.jmrenouard.fr 6
<?php $file = 'somefile.txt'; $remote_file = 'readme.txt'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) ; // Charge un fichier if (ftp_get($conn_id, $remote_file, $file, FTP_ASCII)) { echo "Le fichier $file a té chargé avec succèsn"; } else { echo "Il y a eu un problème lors du chargement du fichier $filen"; } // Fermeture de la connexion ftp_close($conn_id); ?> LightPath 2014© - http://www.jmrenouard.fr 7
LightPath 2014© - http://www.jmrenouard.fr 8
Utilisation du mode FTP de curl $url='ftp://login:mot_de_passe@serveur/‘; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FTPLISTONLY, TRUE); $ret = curl_exec ($ch); curl_close ($ch); $files=preg_split ('/[rn]+/', $ret, -1, PREG_SPLIT_NO_EMPTY); print_r($files); LightPath 2014© - http://www.jmrenouard.fr 9
$url='ftp://login:mot_de_passe@serveur/fichier.txt‘; $nom_local=‘fichier.txt’; $fp = fopen ($nom_local, 'r'); $ch = curl_init ($url); curl_opt ($ch, CURLOPT_INFILE, $fp); curl_setopt ($ch, CURLOPT_INFILESIZE, filesize($nom_local)); curl_setopt($ch, CURLOPT_UPLOAD, TRUE); curl_setopt ($ch, CURLOPT_TRANSFERTEXT, TRUE); $path = parse_url ($url, PHP_URL_PATH); curl_setopt($ch, CURLOPT_POSTQUOTE, array("SITE CHMOD 0444 $path")); $ret = curl_exec ($ch); curl_close($ch); fclose($fp); LightPath 2014© - http://www.jmrenouard.fr 10
$sortie=‘fichier.txt’; $url='ftp://login:mot_de_passe@serveur/fichier.txt‘; if ($fp = fopen ($sortie, 'w')) { $ch = curl_init ($url); curl_setopt ($ch, CURLOPT_FILE, $fp); $ret = curl_exec ($ch); curl_close ($ch); fclose ($fp); } LightPath 2014© - http://www.jmrenouard.fr 11
LightPath 2014© - http://www.jmrenouard.fr 12
Récupération récursive Transfert récursif Transfert sur changement de taille Transfert sur changement de date Mirrorring avec suppressions orphelins LightPath 2014© - http://www.jmrenouard.fr 13
LightPath: ◦Société de conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 14

Le client FTP de PHP5

  • 1.
  • 2.
    Le logo PHPest du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
  • 3.
    Lecture un répertoireavec PHP Envoi de fichier avec PHP Récupération de fichier avec PHP Lecture un répertoire avec PHP/Curl Envoi de fichier avec PHP/Curl Récupération de fichier avec PHP/Curl Possibilité avancée LightPath 2014© - http://www.jmrenouard.fr 3
  • 4.
    LightPath 2014© -http://www.jmrenouard.fr 4
  • 5.
    <?php // Miseen place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // Récupération du contenu d'un dossier $contents = ftp_nlist($conn_id, "."); // Affichage de $contents var_dump($contents); ?> LightPath 2014© - http://www.jmrenouard.fr 5
  • 6.
    <?php $file ='somefile.txt'; $remote_file = 'readme.txt'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) ; // Charge un fichier if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "Le fichier $file a té chargé avec succèsn"; } else { echo "Il y a eu un problème lors du chargement du fichier $filen"; } // Fermeture de la connexion ftp_close($conn_id); ?> LightPath 2014© - http://www.jmrenouard.fr 6
  • 7.
    <?php $file ='somefile.txt'; $remote_file = 'readme.txt'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass) ; // Charge un fichier if (ftp_get($conn_id, $remote_file, $file, FTP_ASCII)) { echo "Le fichier $file a té chargé avec succèsn"; } else { echo "Il y a eu un problème lors du chargement du fichier $filen"; } // Fermeture de la connexion ftp_close($conn_id); ?> LightPath 2014© - http://www.jmrenouard.fr 7
  • 8.
    LightPath 2014© -http://www.jmrenouard.fr 8
  • 9.
    Utilisation du modeFTP de curl $url='ftp://login:mot_de_passe@serveur/‘; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_FTPLISTONLY, TRUE); $ret = curl_exec ($ch); curl_close ($ch); $files=preg_split ('/[rn]+/', $ret, -1, PREG_SPLIT_NO_EMPTY); print_r($files); LightPath 2014© - http://www.jmrenouard.fr 9
  • 10.
    $url='ftp://login:mot_de_passe@serveur/fichier.txt‘; $nom_local=‘fichier.txt’; $fp= fopen ($nom_local, 'r'); $ch = curl_init ($url); curl_opt ($ch, CURLOPT_INFILE, $fp); curl_setopt ($ch, CURLOPT_INFILESIZE, filesize($nom_local)); curl_setopt($ch, CURLOPT_UPLOAD, TRUE); curl_setopt ($ch, CURLOPT_TRANSFERTEXT, TRUE); $path = parse_url ($url, PHP_URL_PATH); curl_setopt($ch, CURLOPT_POSTQUOTE, array("SITE CHMOD 0444 $path")); $ret = curl_exec ($ch); curl_close($ch); fclose($fp); LightPath 2014© - http://www.jmrenouard.fr 10
  • 11.
    $sortie=‘fichier.txt’; $url='ftp://login:mot_de_passe@serveur/fichier.txt‘; if($fp = fopen ($sortie, 'w')) { $ch = curl_init ($url); curl_setopt ($ch, CURLOPT_FILE, $fp); $ret = curl_exec ($ch); curl_close ($ch); fclose ($fp); } LightPath 2014© - http://www.jmrenouard.fr 11
  • 12.
    LightPath 2014© -http://www.jmrenouard.fr 12
  • 13.
    Récupération récursive Transfertrécursif Transfert sur changement de taille Transfert sur changement de date Mirrorring avec suppressions orphelins LightPath 2014© - http://www.jmrenouard.fr 13
  • 14.
    LightPath: ◦Société deconseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 14