Le client FTP de PHP5

14
Jean-Marie Renouard LightPath 2014©

description

Présentation du client FTP de PHP 5

Transcript of Le client FTP de PHP5

Page 1: Le client FTP de PHP5

Jean-Marie Renouard

LightPath 2014©

Page 2: Le client FTP de PHP5

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

Page 3: Le client FTP de PHP5

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

Page 4: Le client FTP de PHP5

LightPath 2014© - http://www.jmrenouard.fr 4

Page 5: Le client FTP de PHP5

<?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

Page 6: Le client FTP de PHP5

<?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

Page 7: Le client FTP de PHP5

<?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

Page 8: Le client FTP de PHP5

LightPath 2014© - http://www.jmrenouard.fr 8

Page 9: Le client FTP de PHP5

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

Page 10: Le client FTP de PHP5

$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

Page 11: Le client FTP de PHP5

$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

Page 12: Le client FTP de PHP5

LightPath 2014© - http://www.jmrenouard.fr 12

Page 13: Le client FTP de PHP5

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

Page 14: Le client FTP de PHP5

LightPath: ◦ Société de conseil et d’ingénierie

◦ Formations, Conseil, Audit et mise en œuvre

[email protected]

Jean-Marie RENOUARD ◦ [email protected]

◦ Twitter: @jmrenouard

◦ http://www.jmrenouard.fr

LightPath 2014© - http://www.jmrenouard.fr 14