XVIII. CURL
PHP supporte libcurl, une bibliothèque créée par Daniel Stenberg,
qui vous permet de vous connecter, de communiquer avec de nombreux serveurs,
grâce à de nombreux protocoles. libcurl supporte actuellement
les protocoles suivants : HTTP, HTTPS,
FTP, gopher, telnet,
dict, file, et
LDAP. libcurl supporte aussi les certificats HTTPS,
les POST HTTP, PUT HTTP, le chargement par FTP (ce qui peut être fait
par l'extension FTP), les chargements par formulaire HTTP, les proxies,
les cookies et l'identification par mot de passe et nom d'utilisateur.
Ces fonctions ont été ajoutées en PHP 4.0.2.
Pour pouvoir utiliser les fonctions CURL, vous devez installer le
package CURL. PHP requiert la version
CURL 7.0.2-beta ou plus récente. En PHP 4.2.3,
vous aurez besoin de CURL version 7.9.0 ou plus. A partir de PHP
4.3.0, vous aurez besoin de CURL version 7.9.8 ou plus.
PHP 5.0.0 requiert une version de CURL supérieure ou égale
à 7.10.5.
Pour utiliser CURL depuis les scripts PHP, vous devez compiler celui-ci
avec l'option --with-curl[=DIR]
où DIR est le chemin jusqu'au dossier contenant les dossiers
lib et include. Dans le
dossier include il doit se trouver un dossier
appelé curl, qui contient notamment les
fichiers easy.h et curl.h.
Il doit aussi se trouver un fichier nommé
libcurl.a dans le dossier lib.
A partir de PHP 4.3.0, vous pouvez aussi configurer PHP pour qu'il
utilise curl comme gestionnaire d'URL avec l'option
--with-curlwrappers.
Note aux utilisateurs Win32 :
Afin d'activer ce module dans l'environnement Windows, vous
devez copier les bibliothèques libeay32.dll et
ssleay32.dll depuis le dossier DLL
de PHP/Win32 dans le dossier SYSTEM de votre machine.
(par exemple : C:\WINNT\SYSTEM32 ou
C:\WINDOWS\SYSTEM).
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution. - CURLOPT_AUTOREFERER
(entier)
Disponible depuis PHP 5.1.0
- CURLOPT_COOKIESESSION
(entier)
Disponible depuis PHP 5.1.0
- CURLOPT_DNS_USE_GLOBAL_CACHE
(entier)
- CURLOPT_DNS_CACHE_TIMEOUT
(entier)
- CURLOPT_FTPSSLAUTH
(entier)
Disponible depuis PHP 5.1.0
- CURLOPT_FOLLOWLOCATION
(entier)
- CURLOPT_LOW_SPEED_LIMIT
(entier)
- CURLOPT_LOW_SPEED_TIME
(entier)
- CURLOPT_SSLCERTPASSWD
(entier)
- CURLOPT_SSL_VERIFYHOST
(entier)
- CURLOPT_TIMECONDITION
(entier)
- CURLOPT_CUSTOMREQUEST
(entier)
- CURLOPT_RETURNTRANSFER
(entier)
- CURLOPT_HTTPPROXYTUNNEL
(entier)
- CURLOPT_WRITEFUNCTION
(entier)
- CURLOPT_PASSWDFUNCTION
(entier)
- CURLOPT_HEADERFUNCTION
(entier)
- CURLOPT_FRESH_CONNECT
(entier)
- CURLOPT_CONNECTTIMEOUT
(entier)
- CURLOPT_SSL_VERIFYPEER
(entier)
- CURLOPT_SSL_CIPHER_LIST
(entier)
- CURLOPT_BINARYTRANSFER
(entier)
- CURLOPT_SSLENGINE_DEFAULT
(entier)
- CURLOPT_UNRESTRICTED_AUTH
(entier)
- CURLOPT_HTTP200ALIASES
(entier)
- CURLAUTH_GSSNEGOTIATE
(entier)
- CURLCLOSEPOLICY_LEAST_RECENTLY_USED
(entier)
- CURLCLOSEPOLICY_LEAST_TRAFFIC
(entier)
- CURLCLOSEPOLICY_SLOWEST
(entier)
- CURLCLOSEPOLICY_CALLBACK
(entier)
- CURLCLOSEPOLICY_OLDEST
(entier)
- CURLINFO_EFFECTIVE_URL
(entier)
- CURLINFO_REQUEST_SIZE
(entier)
- CURLINFO_NAMELOOKUP_TIME
(entier)
- CURLINFO_CONNECT_TIME
(entier)
- CURLINFO_PRETRANSFER_TIME
(entier)
- CURLINFO_SIZE_DOWNLOAD
(entier)
- CURLINFO_SPEED_DOWNLOAD
(entier)
- CURLINFO_SPEED_UPLOAD
(entier)
- CURLINFO_SSL_VERIFYRESULT
(entier)
- CURLINFO_CONTENT_LENGTH_DOWNLOAD
(entier)
- CURLINFO_CONTENT_LENGTH_UPLOAD
(entier)
- CURLINFO_STARTTRANSFER_TIME
(entier)
- CURLINFO_CONTENT_TYPE
(entier)
- CURLINFO_REDIRECT_TIME
(entier)
- CURLINFO_REDIRECT_COUNT
(entier)
- CURL_VERSION_KERBEROS4
(entier)
- CURLE_UNSUPPORTED_PROTOCOL
(entier)
- CURLE_URL_MALFORMAT_USER
(entier)
- CURLE_COULDNT_RESOLVE_PROXY
(entier)
- CURLE_COULDNT_RESOLVE_HOST
(entier)
- CURLE_COULDNT_CONNECT
(entier)
- CURLE_FTP_WEIRD_SERVER_REPLY
(entier)
- CURLE_FTP_ACCESS_DENIED
(entier)
- CURLE_FTP_USER_PASSWORD_INCORRECT
(entier)
- CURLE_FTP_WEIRD_PASS_REPLY
(entier)
- CURLE_FTP_WEIRD_USER_REPLY
(entier)
- CURLE_FTP_WEIRD_PASV_REPLY
(entier)
- CURLE_FTP_WEIRD_227_FORMAT
(entier)
- CURLE_FTP_CANT_GET_HOST
(entier)
- CURLE_FTP_CANT_RECONNECT
(entier)
- CURLE_FTP_COULDNT_SET_BINARY
(entier)
- CURLE_FTP_COULDNT_RETR_FILE
(entier)
- CURLE_FTP_WRITE_ERROR
(entier)
- CURLE_FTP_QUOTE_ERROR
(entier)
- CURLE_FTP_COULDNT_STOR_FILE
(entier)
- CURLE_OPERATION_TIMEOUTED
(entier)
- CURLE_FTP_COULDNT_SET_ASCII
(entier)
- CURLE_FTP_PORT_FAILED
(entier)
- CURLE_FTP_COULDNT_USE_REST
(entier)
- CURLE_FTP_COULDNT_GET_SIZE
(entier)
- CURLE_HTTP_RANGE_ERROR
(entier)
- CURLE_HTTP_POST_ERROR
(entier)
- CURLE_SSL_CONNECT_ERROR
(entier)
- CURLE_FTP_BAD_DOWNLOAD_RESUME
(entier)
- CURLE_FILE_COULDNT_READ_FILE
(entier)
- CURLE_LDAP_CANNOT_BIND
(entier)
- CURLE_LDAP_SEARCH_FAILED
(entier)
- CURLE_LIBRARY_NOT_FOUND
(entier)
- CURLE_FUNCTION_NOT_FOUND
(entier)
- CURLE_ABORTED_BY_CALLBACK
(entier)
- CURLE_BAD_FUNCTION_ARGUMENT
(entier)
- CURLE_BAD_CALLING_ORDER
(entier)
- CURLE_HTTP_PORT_FAILED
(entier)
- CURLE_BAD_PASSWORD_ENTERED
(entier)
- CURLE_TOO_MANY_REDIRECTS
(entier)
- CURLE_UNKNOWN_TELNET_OPTION
(entier)
- CURLE_TELNET_OPTION_SYNTAX
(entier)
- CURLE_SSL_PEER_CERTIFICATE
(entier)
- CURLE_SSL_ENGINE_NOTFOUND
(entier)
- CURLE_SSL_ENGINE_SETFAILED
(entier)
- CURLE_SSL_CERTPROBLEM
(entier)
- CURLE_BAD_CONTENT_ENCODING
(entier)
- CURLE_LDAP_INVALID_URL
(entier)
- CURLE_FILESIZE_EXCEEDED
(entier)
- CURLFTPAUTH_DEFAULT
(entier)
Disponible depuis PHP 5.1.0
- CURLFTPAUTH_SSL
(entier)
Disponible depuis PHP 5.1.0
- CURLFTPAUTH_TLS
(entier)
Disponible depuis PHP 5.1.0
- CURL_HTTP_VERSION_NONE
(entier)
- CURL_HTTP_VERSION_1_0
(entier)
- CURL_HTTP_VERSION_1_1
(entier)
- CURLM_CALL_MULTI_PERFORM
(entier)
- CURLM_BAD_EASY_HANDLE
(entier)
Une fois que vous avez compilé PHP avec le support CURL, vous
pouvez commencer à l'exploiter avec vos scripts PHP. Le principe
de fonctionnement est d'initialiser une session CURL avec
curl_init(), puis de choisir toutes vos options
de transfert avec curl_setopt(), puis d'exécuter
la session avec curl_exec() et de finir votre
session avec curl_close(). Voici un exemple
d'utilisation des fonctions CURL, qui récupère la page principale
de example.com dans un fichier :
Exemple 1. Utilisation de CURL pour récupérer une page
<?php
$ch = curl_init("http://www.example.com/"); $fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch); curl_close($ch); fclose($fp); ?>
|
|
|