PHP Curl Class facilite l'envoi de requêtes HTTP et l'intégration aux API Web.
Installation
Exigences
Démarrage rapide et exemples
Méthodes disponibles
Sécurité
Dépannage
Essai
Contribuer
Pour installer PHP Curl Class, exécutez la commande suivante :
composer require php-curl-class/php-curl-class
Pour installer la dernière version du commit :
composer require php-curl-class/php-curl-class @dev
Les instructions d'installation pour utiliser la commande composer
sont disponibles sur https://github.com/composer/composer.
PHP Curl Class fonctionne avec PHP 8.4, 8.3, 8.2, 8.1, 8.0 et 7.4.
D’autres exemples sont disponibles sous /examples.
nécessite __DIR__ . '/vendor/autoload.php';use CurlCurl;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'Erreur: ' . $curl->message d'erreur . "n";$curl->diagnostiquer(); } else {echo 'Réponse :' . "n";var_dump($curl->response); }
// https://www.example.com/search?q=keyword$curl = new Curl();$curl->get('https://www.example.com/search', ['q' = > 'mot-clé', ]);
$curl = new Curl();$curl->post('https://www.example.com/login/', ['username' => 'myusername','password' => 'mypassword', ]);
$curl = new Curl();$curl->setBasicAuthentication('nom d'utilisateur', 'mot de passe');$curl->setUserAgent('MyUserAgent/0.0.1 (+https://www.example.com/bot.html)');$curl->setReferrer('https://www.example.com/url?url=https%3A%2F%2Fwww.example. com%2F');$curl->setHeader('X-Requested-With', 'XMLHttpRequest');$curl->setCookie('clé', 'value');$curl->get('https://www.example.com/');if ($curl->error) {echo 'Erreur : ' . $curl->message d'erreur . "n" ; } else {echo 'Réponse :' . "n";var_dump($curl->response); }var_dump($curl->requestHeaders);var_dump($curl->responseHeaders);
$curl = new Curl();$curl->setFollowLocation();$curl->get('https://shortn.example.com/bHbVsP');
$curl = new Curl();$curl->put('https://api.example.com/user/', ['first_name' => 'Zach','last_name' => 'Borboa', ]);
$curl = new Curl();$curl->patch('https://api.example.com/profile/', ['image' => '@path/to/file.jpg', ]);
$curl = new Curl();$curl->patch('https://api.example.com/profile/', ['image' => new CURLFile('path/to/file.jpg'), ]);
$curl = new Curl();$curl->delete('https://api.example.com/user/', ['id' => '1234', ]);
// Activez tous les types d'encodage pris en charge et téléchargez un fichier.$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .bin', '/tmp/monfichier.bin');
// Accès aux en-têtes sans distinction de casse.$curl = new Curl();$curl->download('https://www.example.com/image.png', '/tmp/myimage.png');echo $curl->responseHeaders['Content-Type'] . "n" ; // image/pngecho $curl->responseHeaders['ConTeNT-TyPE'] . "n" ; //image/png
// Nettoyage manuel.$curl->close();
// Exemple d'accès à curl object.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible ; MSIE 7.0 ; Windows NT 5.1');curl_close($curl->curl);
nécessite __DIR__ . '/vendor/autoload.php';use CurlMultiCurl;// Requêtes en parallèle avec les fonctions de rappel.$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url '" a réussi.' . "n";echo 'response:' . "n";var_dump($instance->response); });$multi_curl->error(function($instance) {echo 'appel à "' . $instance->url . '" a échoué.' . "n";echo 'code d'erreur : ' . $instance-> errorCode . "n"; echo 'message d'erreur : ' $instance->errorMessage . });$multi_curl->complete(function($instance) {echo 'appel terminé' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'bonjour tout le monde', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'bonjour tout le monde', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'bonjour tout le monde', ]);$multi_curl->start(); // Bloque jusqu'à ce que tous les éléments de la file d'attente aient été traités.
D’autres exemples sont disponibles sous /examples.
Curl::__construct($base_url = null, $options = []) Curl::__destruct() Curl::__get($nom) Curl :: afterSend ($ rappel) Curl::tentativeRetry() Curl::beforeSend ($ rappel) Curl :: buildPostData ($ données) Curl::appel() Curl::fermer() Curl :: complet ($ rappel) Curl::delete($url, $query_parameters = [], $data = []) Curl::diagnostiquer($return = false) Curl::disableTimeout() Curl :: displayCurlOptionValue ($ option, $ valeur = null) Curl::download($url, $mixed_filename) Curl :: erreur ($ rappel) Curl::exec($ch = nul) Curl::execDone() Curl::fastDownload($url, $filename, $connections = 4) Curl::get($url, $data = []) Curl :: getAttempts () Curl :: getBeforeSendCallback () Curl :: getCompleteCallback() Curl :: getCookie ($ clé) Curl::getCurl() Curl :: getCurlErrorCode() Curl :: getCurlErrorMessage() Curl :: getDownloadCompleteCallback() Curl :: getDownloadFileName() Curl :: getErrorCallback () Curl::getErrorCode() Curl::getErrorMessage() Curl::getFileHandle() Curl :: getHttpErrorMessage() Curl :: getHttpStatusCode() Curl::getId() Curl :: getInfo ($ opt = null) Curl :: getJsonDecoder() Curl::getOpt($option) Curl::getOptions() Curl :: getRawResponse() Curl :: getRawResponseHeaders() Curl :: getRemainingRetries() Curl :: getRequestHeaders() Curl :: getResponse () Curl :: getResponseCookie ($ clé) Curl :: getResponseCookies() Curl :: getResponseHeaders() Curl::getRetries() Curl :: getRetryDecider() Curl :: getSuccessCallback () Curl::getUrl() Curl :: getUserSetOptions() Curl::getXmlDecoder() Curl::head($url, $data = []) Curl::isChildOfMultiCurl() Curl::isCurlError() Curl::isErreur() Curl::isHttpError() Curl::options($url, $data = []) Curl::patch($url, $data = []) Curl::post($url, $data = '', $follow_303_with_post = false) Curl :: progrès ($ rappel) Curl::put($url, $data = []) Curl::removeHeader($clé) Curl :: réinitialiser () Curl::recherche($url, $data = []) Curl::setAutoReferer($auto_referer = true) Curl::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($nom d'utilisateur, $mot de passe = '') Curl :: setConnectTimeout ($ secondes) Curl :: setCookie ($ clé, $ valeur) Curl::setCookieFile($cookie_file) Curl::setCookieJar($cookie_jar) Curl :: setCookieString ($ chaîne) Curl::setCookies($cookies) Curl::setDefaultDecoder($mixed = 'json') Curl :: setDefaultHeaderOut() Curl :: setDefaultJsonDecoder() Curl::setDefaultTimeout() Curl :: setDefaultUserAgent() Curl :: setDefaultXmlDecoder() Curl::setDigestAuthentication($nom d'utilisateur, $mot de passe = '') Curl::setFile($fichier) Curl::setFollowLocation($follow_location = true) Curl::setForbidReuse($forbid_reuse = true) Curl::setHeader($clé, $valeur) Curl :: setHeaders ($ en-têtes) Curl::setInterface($interface) Curl :: setJsonDecoder ($ mixte) Curl :: setMaxFilesize ($ octets) Curl :: setMaximumRedirects ($ maximum_redirects) Curl::setOpt($option, $valeur) Curl::setOpts($options) Curl::setPort($port) Curl :: setProtocols ($ protocoles) Curl::setProxy($proxy, $port = null, $username = null, $password = null) Curl :: setProxyAuth ($ auth) Curl::setProxyTunnel($tunnel = vrai) Curl::setProxyType($type) Curl::setRange($plage) Curl :: setRedirectProtocols ($ redirect_protocols) Curl::setReferer($référent) Curl::setReferrer($référent) Curl :: setRetry ($ mixte) Curl :: setStop ($ rappel = null) Curl::setTimeout ($ secondes) Curl::setUrl($url, $mixed_data = '') Curl :: setUserAgent ($ user_agent) Curl :: setXmlDecoder ($ mixte) Curl::stop() Curl::succès ($ rappel) Curl::unsetHeader($clé) Curl::unsetProxy() Curl::verbose($on = true, $output = 'STDERR') MultiCurl::__construct($base_url = null) MultiCurl::__destruct() MultiCurl::addCurl(Curl $curl) MultiCurl::addDelete($url, $query_parameters = [], $data = []) MultiCurl::addDownload($url, $mixed_filename) MultiCurl::addGet($url, $data = []) MultiCurl::addHead($url, $data = []) MultiCurl::addOptions($url, $data = []) MultiCurl::addPatch($url, $data = []) MultiCurl::addPost($url, $data = '', $follow_303_with_post = false) MultiCurl::addPut($url, $data = []) MultiCurl :: addSearch ($ url, $ data = []) MultiCurl :: afterSend ($ rappel) MultiCurl : beforeSend ($ rappel) MultiCurl :: fermer () MultiCurl :: complet ($ rappel) MultiCurl ::disableTimeout() MultiCurl :: erreur ($ rappel) MultiCurl :: getActiveCurls () MultiCurl :: getOpt ($ option) MultiCurl ::removeHeader($key) MultiCurl :: setAutoReferer ($ auto_referer = true) MultiCurl :: setAutoReferrer ($ auto_referrer = true) MultiCurl::setBasicAuthentication($nom d'utilisateur, $mot de passe = '') MultiCurl :: setConcurrency ($ concurrence) MultiCurl :: setConnectTimeout ($ secondes) MultiCurl :: setCookie ($ clé, $ valeur) MultiCurl :: setCookieFile ($ cookie_file) MultiCurl :: setCookieJar ($ cookie_jar) MultiCurl :: setCookieString ($ chaîne) MultiCurl :: setCookies ($ cookies) MultiCurl::setDigestAuthentication($nom d'utilisateur, $mot de passe = '') MultiCurl :: setFile ($ fichier) MultiCurl :: setFollowLocation ($ follow_location = true) MultiCurl::setForbidReuse($forbid_reuse = true) MultiCurl :: setHeader ($ clé, $ valeur) MultiCurl :: setHeaders ($ en-têtes) MultiCurl :: setInterface ($ interface) MultiCurl :: setJsonDecoder ($ mixte) MultiCurl :: setMaximumRedirects ($ maximum_redirects) MultiCurl :: setOpt ($ option, $ valeur) MultiCurl :: setOpts ($ options) MultiCurl :: setPort ($ port) MultiCurl :: setProxies ($ proxys) MultiCurl::setProxy($proxy, $port = null, $username = null, $password = null) MultiCurl :: setProxyAuth ($ auth) MultiCurl :: setProxyTunnel ($ tunnel = true) MultiCurl ::setProxyType($type) MultiCurl::setRange($plage) MultiCurl :: setRateLimit ($ rate_limit) MultiCurl::setReferer($référent) MultiCurl::setReferrer($référent) MultiCurl :: setRequestTimeAccuracy() MultiCurl :: setRetry ($ mixte) MultiCurl :: setTimeout ($ secondes) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl :: setUserAgent ($ user_agent) MultiCurl :: setXmlDecoder ($ mixte) MultiCurl :: start () MultiCurl :: stop () MultiCurl :: succès ($ rappel) MultiCurl::unsetHeader($clé) MultiCurl ::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
Voir SÉCURITÉ pour les considérations de sécurité.
Voir DÉPANNAGE pour obtenir de l'aide sur le dépannage.
Voir TESTS pour obtenir des informations sur les tests.
Recherchez les problèmes ouverts ou ouvrez un nouveau problème pour démarrer une discussion autour d'un bug ou d'une fonctionnalité.
Forkez le référentiel sur GitHub pour commencer à apporter vos modifications.
Écrivez un ou plusieurs tests pour la nouvelle fonctionnalité ou qui exposent le bogue.
Apportez des modifications au code pour implémenter la fonctionnalité ou corriger le bogue.
Envoyez une pull request pour que vos modifications soient fusionnées et publiées.