SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
kader15
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
 
PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4
julien pauli
 

Tendances (20)

Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
MVC / Frameworks PHP
MVC / Frameworks PHPMVC / Frameworks PHP
MVC / Frameworks PHP
 
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrapApplication web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
Pratique de la programmation en go
Pratique de la programmation en goPratique de la programmation en go
Pratique de la programmation en go
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Php4 Mysql
Php4 MysqlPhp4 Mysql
Php4 Mysql
 
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVCPhp 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
 
Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?Etes vous-pret pour php8 ?
Etes vous-pret pour php8 ?
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Initiation au php
Initiation au phpInitiation au php
Initiation au php
 
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQLTrucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
 
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs SymfonySoutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
 
Cours php
Cours phpCours php
Cours php
 
Bases de PHP - Partie 1
Bases de PHP - Partie 1Bases de PHP - Partie 1
Bases de PHP - Partie 1
 
Cours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partieCours php & Mysql - 3éme partie
Cours php & Mysql - 3éme partie
 
Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8Les blocs Drupal de drop.org à Drupal 8
Les blocs Drupal de drop.org à Drupal 8
 
Aeris web components
Aeris web componentsAeris web components
Aeris web components
 
PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4PHPTour 2011 - PHP5.4
PHPTour 2011 - PHP5.4
 

En vedette (9)

Les structures de données PHP5
Les structures de données PHP5Les structures de données PHP5
Les structures de données PHP5
 
SQL et MySQL
SQL et MySQLSQL et MySQL
SQL et MySQL
 
Configuration PHP5
Configuration PHP5Configuration PHP5
Configuration PHP5
 
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur LinuxManuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
 
Ssh cookbook
Ssh cookbookSsh cookbook
Ssh cookbook
 
PHP 5 et la programmation objet
PHP 5 et la programmation objetPHP 5 et la programmation objet
PHP 5 et la programmation objet
 
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHPSécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
 
Structure de données en PHP
Structure de données en PHPStructure de données en PHP
Structure de données en PHP
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 

Similaire à Le client FTP de PHP5

Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Tony Galmiche
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfony
jeUXdiCode
 

Similaire à Le client FTP de PHP5 (20)

Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Php 7.4 2020-01-28 - afup
Php 7.4   2020-01-28 - afupPhp 7.4   2020-01-28 - afup
Php 7.4 2020-01-28 - afup
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Lp web tp3_idse
Lp web tp3_idseLp web tp3_idse
Lp web tp3_idse
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
 
PHP #4 : sessions & cookies
PHP #4 : sessions & cookiesPHP #4 : sessions & cookies
PHP #4 : sessions & cookies
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
upload en PHP
upload en PHPupload en PHP
upload en PHP
 
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdfCours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
 
Des tests modernes pour Drupal
Des tests modernes pour DrupalDes tests modernes pour Drupal
Des tests modernes pour Drupal
 
PHP 5.3, PHP Next
PHP 5.3, PHP NextPHP 5.3, PHP Next
PHP 5.3, PHP Next
 
Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018Internationalisez vos développements - WP Tech 2018
Internationalisez vos développements - WP Tech 2018
 
Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014Présentation de symfony - Human talks aux docks le 8 juillet 2014
Présentation de symfony - Human talks aux docks le 8 juillet 2014
 
Plein phar
Plein pharPlein phar
Plein phar
 
@Readme code s-sources-fr
@Readme code s-sources-fr@Readme code s-sources-fr
@Readme code s-sources-fr
 
Compteur de visites
Compteur de visitesCompteur de visites
Compteur de visites
 
Rapport d’installation d’un serveur de messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de  messagerie avec le Webmail RoundcubeRapport d’installation d’un serveur de  messagerie avec le Webmail Roundcube
Rapport d’installation d’un serveur de messagerie avec le Webmail Roundcube
 
Drupal 8, symfony
Drupal 8, symfonyDrupal 8, symfony
Drupal 8, symfony
 
Mise en place de service FTP kalinux.pdf
Mise en place de service FTP kalinux.pdfMise en place de service FTP kalinux.pdf
Mise en place de service FTP kalinux.pdf
 

Dernier

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (20)

Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 

Le client FTP de PHP5

  • 2. 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
  • 3. 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
  • 4. LightPath 2014© - http://www.jmrenouard.fr 4
  • 5. <?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
  • 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 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
  • 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 Transfert ré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é 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