Soumettre la recherche
Mettre en ligne
Le client HTTP PHP5
•
0 j'aime
•
1,318 vues
Jean-Marie Renouard
Suivre
Présentation de l'utilisation du client HTTP de PHP 5
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 35
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Recommandé
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Email et PHP5
Email et PHP5
Jean-Marie Renouard
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Gestion de formulaires en PHP
Gestion de formulaires en PHP
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA
Php & My Sql
Php & My Sql
guest6c050e
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Yves Van Goethem
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
Php4 Mysql
Php4 Mysql
HamdiBaklouti
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Presentation langage go_19022015
Presentation langage go_19022015
Stéphane Legrand
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Kristen Le Liboux
Chap2
Chap2
vangogue
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
Pratique de la programmation en go
Pratique de la programmation en go
Abdoul Kader Sarambe
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
Contenu connexe
Tendances
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA
Php & My Sql
Php & My Sql
guest6c050e
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Yves Van Goethem
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Pierre Faure
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Damien Seguy
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
kadzaki
Php4 Mysql
Php4 Mysql
HamdiBaklouti
Pratique de la programmation en go
Pratique de la programmation en go
kader15
Presentation langage go_19022015
Presentation langage go_19022015
Stéphane Legrand
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Régis Lutter
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Kristen Le Liboux
Tendances
(18)
Configuration PHP5
Configuration PHP5
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Javascript et JQuery
Javascript et JQuery
MVC / Frameworks PHP
MVC / Frameworks PHP
SQL et MySQL
SQL et MySQL
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Php & My Sql
Php & My Sql
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
Php 2 - Approfondissement MySQL, PDO et MVC
Php 2 - Approfondissement MySQL, PDO et MVC
Trucs et astuces PHP et MySQL
Trucs et astuces PHP et MySQL
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
Php4 Mysql
Php4 Mysql
Pratique de la programmation en go
Pratique de la programmation en go
Presentation langage go_19022015
Presentation langage go_19022015
Bases de PHP - Partie 1
Bases de PHP - Partie 1
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
Similaire à Le client HTTP PHP5
Chap2
Chap2
vangogue
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
Pratique de la programmation en go
Pratique de la programmation en go
Abdoul Kader Sarambe
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
démonstration code source site web ecole.docx
démonstration code source site web ecole.docx
VincentBweka
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
🏁 Pierre-Henry Soria 💡
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Francois Marier
Php Data Object
Php Data Object
Mehdi EL KRARI
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
IZZA Samir
Php 7.4 2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Julien Vinber
Présentation de DBAL en PHP
Présentation de DBAL en PHP
Mickael Perraud
Wordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
Boiteaweb
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
RihabBENLAMINE
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptx
Mickael ROLO
Formation php pdo
Formation php pdo
Souhaibou Salla
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Julien Vinber
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
Engineor
La première partie de la présentation PHP
La première partie de la présentation PHP
Club Scientifique de l'ESI - CSE
Similaire à Le client HTTP PHP5
(20)
Chap2
Chap2
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Pratique de la programmation en go
Pratique de la programmation en go
Les structures de données PHP5
Les structures de données PHP5
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
démonstration code source site web ecole.docx
démonstration code source site web ecole.docx
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Php Data Object
Php Data Object
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
Php 7.4 2020-01-28 - afup
Php 7.4 2020-01-28 - afup
Présentation de DBAL en PHP
Présentation de DBAL en PHP
Wordpress et la sécurité des plugins
Wordpress et la sécurité des plugins
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Cours3-PHPfgdwfwdffhddfbwdfwdfwdfwdfwfw.pdf
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptx
Formation php pdo
Formation php pdo
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
La première partie de la présentation PHP
La première partie de la présentation PHP
Plus de Jean-Marie Renouard
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Jean-Marie Renouard
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Jean-Marie Renouard
Manuel de sécurité Linux
Manuel de sécurité Linux
Jean-Marie Renouard
Ssh cookbook v2
Ssh cookbook v2
Jean-Marie Renouard
Ssh cookbook
Ssh cookbook
Jean-Marie Renouard
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
Structure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
Plus de Jean-Marie Renouard
(7)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
Manuel De Securite 1.8 (Mise à jour avec DOCKER)
ManuelDeSecurite-1.7.pdf
ManuelDeSecurite-1.7.pdf
Manuel de sécurité Linux
Manuel de sécurité Linux
Ssh cookbook v2
Ssh cookbook v2
Ssh cookbook
Ssh cookbook
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Structure de données en PHP
Structure de données en PHP
Dernier
présentation sur la logistique (4).
présentation sur la logistique (4).
FatimaEzzahra753100
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
alainfahed961
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SKennel
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
angevaleryn
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
bentaha1011
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
Institut de l'Elevage - Idele
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
docteurgyneco1
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
Institut de l'Elevage - Idele
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
maach1
Dernier
(9)
présentation sur la logistique (4).
présentation sur la logistique (4).
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
Actions du vent sur les bâtiments selon lEurocode 1 – Partie 1-4.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_APC.pdf
Chapitre 2 : fondations et analyses de données géotechniques
Chapitre 2 : fondations et analyses de données géotechniques
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
CHAPITRE 2 VARIABLE ALEATOIRE probabilité.ppt
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
Support de cours La technologie WDM.pptx
Support de cours La technologie WDM.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Cours-de-Ponts Cours de Ponts Principes généraux - Conception Méthodes de con...
Le client HTTP PHP5
1.
Jean-Marie Renouard LightPath
2014©
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.
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.
LightPath 2014© -
http://www.jmrenouard.fr 4
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.
LightPath 2014© -
http://www.jmrenouard.fr 6
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.
LightPath 2014© -
http://www.jmrenouard.fr 8
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.
LightPath 2014© -
http://www.jmrenouard.fr 10
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.
… <input type="text"
name="firstName" value="Name"> <input type="text" name=« lastName" value="Name"> … LightPath 2014© - http://www.jmrenouard.fr 12
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.
curl_setopt( $curl_connection, CURLOPT_POSTFIELDS,
$post_string); LightPath 2014© - http://www.jmrenouard.fr 14
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.
$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.
LightPath 2014© -
http://www.jmrenouard.fr 17
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.
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.
Strip_tags: retrait des
tags HTML. Idéal pour la conservation au format TXT LightPath 2014© - http://www.jmrenouard.fr 20
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.
LightPath 2014© -
http://www.jmrenouard.fr 22
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.
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.
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.
LightPath 2014© -
http://www.jmrenouard.fr 26
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.
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.
LightPath 2014© -
http://www.jmrenouard.fr 29
30.
Activation du HTTPS
sans vérification. ◦curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); LightPath 2014© - http://www.jmrenouard.fr 30
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.
LightPath 2014© -
http://www.jmrenouard.fr 32
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.
$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.
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
Télécharger maintenant