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 l...
Base de l’accès HTTP 
Récupération d’un page WEB 
Récupération dans un fichier 
Poster des données de formulaire 
Net...
LightPath 2014© - http://www.jmrenouard.fr 
4
Curl_init: initialise une session HTTP 
Curl_setopt: initialise les options 
◦Entête HTTP 
◦Authentification 
◦User-agen...
LightPath 2014© - http://www.jmrenouard.fr 
6
<?php 
// Création d'une nouvelle ressource cURL 
$ch = curl_init(); 
// Configuration de l'URL et d'autres options 
curl_...
LightPath 2014© - http://www.jmrenouard.fr 
8
Sortie par défaut, la sortie standard. 
Possibilité de stocker dans un fichier 
$ch = curl_init("http://www.example.com/...
LightPath 2014© - http://www.jmrenouard.fr 
10
GET: par défaut 
GET; curl_setopt($ch, CURLOPT_HTTPGET, true); 
POST: curl_setopt($ch, CURLOPT_POST, true); 
PUT :POST...
… 
<input type="text" name="firstName" value="Name"> 
<input type="text" name=« lastName" value="Name"> 
… 
LightPath 2014...
Urlencode: fonction d’encodage pour URL. 
$post_data['firstName'] = ‘Jean-Marie'; 
$post_data[‘lastName'] = ‘Renouard‘; 
...
curl_setopt( 
$curl_connection, 
CURLOPT_POSTFIELDS, 
$post_string); 
LightPath 2014© - http://www.jmrenouard.fr 
14
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); 
curl_setopt($ch, CURLOPT_POST, true); 
$post_da...
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); 
curl_setopt($ch, CURLOPT_POST, true); 
$post_da...
LightPath 2014© - http://www.jmrenouard.fr 
17
Urlencode: encodage des données POST 
Les données postées par CURL doivent être url encodées afin de conserver le format...
htmlentities: encodage des caractères en entités HTML 
html_entity_decode: décodage des entités HTML. 
Idéal, lors de l...
Strip_tags: retrait des tags HTML. 
Idéal pour la conservation au format TXT 
LightPath 2014© - http://www.jmrenouard.fr...
<?php 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
cu...
LightPath 2014© - http://www.jmrenouard.fr 
22
Indication du navigateur utilisé. 
◦curl_setopt($ch, CURLOPT_USERAGENT, « Mozilla/5.0 »); 
Indication de la page d’origi...
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
Jusqu’à un certain point, je veux bien suivre: 
curl_setopt($ch, CURLO...
Il est possible d’ajouter ses entêtes HTTP 
$headers= array ( "Content-Type: text/xml; charset=utf-8", "Expect: 100-cont...
LightPath 2014© - http://www.jmrenouard.fr 
26
2 appels pour initialiser l’authentification type BASIC 
Format des données d’authentification : 
◦[login] : [password] ...
Curl supporte plusieurs type d’authentification. 
◦curl_setopt($curl, CURLOPT_HTTPAUTH, XXXX ) ; 
Types d’authentificati...
LightPath 2014© - http://www.jmrenouard.fr 
29
Activation du HTTPS sans vérification. 
◦curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
LightPath 2014© - http://www.j...
Récupérer le certificat X509 de l’autorité de certification 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt...
LightPath 2014© - http://www.jmrenouard.fr 
32
Indication du proxy HTTP et de l’URL 
options = array( 
CURLOPT_HTTPPROXYTUNNEL=> 1, 
CURLOPT_PROXYTYPE => 'URLPROXY_HTTP...
$options = array( 
CURLOPT_PROXYTYPE => 'URLPROXY_HTTP', 
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
CURLOPT_PROXY => ...
LightPath: 
◦Société de conseil et d’ingénierie 
◦Formations, Conseil, Audit et mise en oeuvre 
◦jmrenouard@lightpath.fr ...
Prochain SlideShare
Chargement dans…5
×

Le client HTTP PHP5

750 vues

Publié le

Présentation de l'utilisation du client HTTP de PHP 5

Publié dans : Ingénierie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
750
Sur SlideShare
0
Issues des intégrations
0
Intégrations
163
Actions
Partages
0
Téléchargements
18
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Le client HTTP PHP5

  1. 1. Jean-Marie Renouard LightPath 2014©
  2. 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. 3. Base de l’accès HTTP Récupération d’un page WEB Récupération dans un fichier Poster des données de formulaire Nettoyage des données Positionner des entêtes HTTP Passer l’authentification Sécurisation HTTPS Accès multiples LightPath 2014© - http://www.jmrenouard.fr 3
  4. 4. LightPath 2014© - http://www.jmrenouard.fr 4
  5. 5. Curl_init: initialise une session HTTP Curl_setopt: initialise les options ◦Entête HTTP ◦Authentification ◦User-agent ◦… Curl_exec: exécution d’un requête HTTP Curl_close: fermeture de la session HTTP LightPath 2014© - http://www.jmrenouard.fr 5
  6. 6. LightPath 2014© - http://www.jmrenouard.fr 6
  7. 7. <?php // Création d'une nouvelle ressource cURL $ch = curl_init(); // Configuration de l'URL et d'autres options curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); curl_setopt($ch, CURLOPT_HEADER, 0); // Récupération de l'URL et affichage sur le naviguateur curl_exec($ch); // Fermeture de la session cURL curl_close($ch); ?> LightPath 2014© - http://www.jmrenouard.fr 7
  8. 8. LightPath 2014© - http://www.jmrenouard.fr 8
  9. 9. Sortie par défaut, la sortie standard. Possibilité de stocker dans un fichier $ch = curl_init("http://www.example.com/"); $fp = fopen("page.html", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_exec($ch); curl_close($ch); fclose($fp); LightPath 2014© - http://www.jmrenouard.fr 9
  10. 10. LightPath 2014© - http://www.jmrenouard.fr 10
  11. 11. GET: par défaut GET; curl_setopt($ch, CURLOPT_HTTPGET, true); POST: curl_setopt($ch, CURLOPT_POST, true); PUT :POST: curl_setopt($ch, CURLOPT_PUT, true); TRACE / HEAD: pas disponible LightPath 2014© - http://www.jmrenouard.fr 11
  12. 12. … <input type="text" name="firstName" value="Name"> <input type="text" name=« lastName" value="Name"> … LightPath 2014© - http://www.jmrenouard.fr 12
  13. 13. Urlencode: fonction d’encodage pour URL. $post_data['firstName'] = ‘Jean-Marie'; $post_data[‘lastName'] = ‘Renouard‘; foreach ( $post_data as $key => $value) { $post_items[] = urlencode($key) . '=' . urlencode($value); } $post_string = implode ('&', $post_items); LightPath 2014© - http://www.jmrenouard.fr 13
  14. 14. curl_setopt( $curl_connection, CURLOPT_POSTFIELDS, $post_string); LightPath 2014© - http://www.jmrenouard.fr 14
  15. 15. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); curl_setopt($ch, CURLOPT_POST, true); $post_data['firstName'] = ‘Jean-Marie'; $post_data[‘lastName'] = ‘Renouard‘; foreach ( $post_data as $key => $value) { $post_items[] = urlencode($key) . '=' . urlencode($value); } $post_string = implode ('&', $post_items); curl_setopt($ch,CURLOPT_POSTFIELDS, $post_string); curl_exec($ch); curl_close($ch); LightPath 2014© - http://www.jmrenouard.fr 15
  16. 16. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); curl_setopt($ch, CURLOPT_POST, true); $post_data['firstName'] = ‘Jean-Marie'; $post_data[‘lastName'] = ‘Renouard‘; curl_setopt($ch,CURLOPT_POSTFIELDS, $post_data); curl_exec($ch); curl_close($ch); LightPath 2014© - http://www.jmrenouard.fr 16
  17. 17. LightPath 2014© - http://www.jmrenouard.fr 17
  18. 18. Urlencode: encodage des données POST Les données postées par CURL doivent être url encodées afin de conserver le format des données. LightPath 2014© - http://www.jmrenouard.fr 18
  19. 19. htmlentities: encodage des caractères en entités HTML html_entity_decode: décodage des entités HTML. Idéal, lors de la réception de page Web. LightPath 2014© - http://www.jmrenouard.fr 19
  20. 20. Strip_tags: retrait des tags HTML. Idéal pour la conservation au format TXT LightPath 2014© - http://www.jmrenouard.fr 20
  21. 21. <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.php.net/"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANFER, true); $page=curl_exec($ch); $page=strip_tags($page); $page= html_entity_decode($page); curl_close($ch); file_put_contents(« result.txt », $page); ?> LightPath 2014© - http://www.jmrenouard.fr 21
  22. 22. LightPath 2014© - http://www.jmrenouard.fr 22
  23. 23. Indication du navigateur utilisé. ◦curl_setopt($ch, CURLOPT_USERAGENT, « Mozilla/5.0 »); Indication de la page d’origine de l’appel ◦curl_setopt($ch, CURLOPT_REFERER, « http://www.google.com/ »); LightPath 2014© - http://www.jmrenouard.fr 23
  24. 24. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); Jusqu’à un certain point, je veux bien suivre: curl_setopt($ch, CURLOPT_MAXRES, 10); LightPath 2014© - http://www.jmrenouard.fr 24
  25. 25. Il est possible d’ajouter ses entêtes HTTP $headers= array ( "Content-Type: text/xml; charset=utf-8", "Expect: 100-continue" ) ; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); LightPath 2014© - http://www.jmrenouard.fr 25
  26. 26. LightPath 2014© - http://www.jmrenouard.fr 26
  27. 27. 2 appels pour initialiser l’authentification type BASIC Format des données d’authentification : ◦[login] : [password] Appels à réaliser: ◦curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ; ◦curl_setopt($curl, CURLOPT_USERPWD, "username:password"); LightPath 2014© - http://www.jmrenouard.fr 27
  28. 28. Curl supporte plusieurs type d’authentification. ◦curl_setopt($curl, CURLOPT_HTTPAUTH, XXXX ) ; Types d’authentification possibles: ◦CURLAUTH_BASIC ◦CURLAUTH_DIGEST ◦ CURLAUTH_GSSNEGOTIATE ◦ CURLAUTH_NTLM ◦ CURLAUTH_ANY: idéal pour passer une authentification ◦CURLAUTH_ANYSAFE. LightPath 2014© - http://www.jmrenouard.fr 28
  29. 29. LightPath 2014© - http://www.jmrenouard.fr 29
  30. 30. Activation du HTTPS sans vérification. ◦curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); LightPath 2014© - http://www.jmrenouard.fr 30
  31. 31. Récupérer le certificat X509 de l’autorité de certification curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_CAINFO, SECURECA.crt"); LightPath 2014© - http://www.jmrenouard.fr 31
  32. 32. LightPath 2014© - http://www.jmrenouard.fr 32
  33. 33. Indication du proxy HTTP et de l’URL options = array( CURLOPT_HTTPPROXYTUNNEL=> 1, CURLOPT_PROXYTYPE => 'URLPROXY_HTTP', CURLOPT_PROXY => 'url_proxy:port' ); curl_setopt_array($ch, $options); LightPath 2014© - http://www.jmrenouard.fr 33
  34. 34. $options = array( CURLOPT_PROXYTYPE => 'URLPROXY_HTTP', curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); CURLOPT_PROXY => 'url_proxy:port', CURLOPT_PROXYAUTH =>'URLAUTH_ANY', CURLOPT_PROXYUSERPWD => $userpwd ); curl_setopt_array($ch, $options); LightPath 2014© - http://www.jmrenouard.fr 34
  35. 35. 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 35

×