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ès\n"; } else { echo "Il y a eu un problème lors du chargement du fichier $file\n"; } // 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ès\n"; } else { echo "Il y a eu un problème lors du chargement du fichier $file\n"; } // 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 ('/[\r\n]+/', $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 œuvre
Jean-Marie RENOUARD ◦ [email protected]
◦ Twitter: @jmrenouard
◦ http://www.jmrenouard.fr
LightPath 2014© - http://www.jmrenouard.fr 14