Die PHP-Curl-Klasse erleichtert das Senden von HTTP-Anfragen und die Integration in Web-APIs.
Installation
Anforderungen
Schnellstart und Beispiele
Verfügbare Methoden
Sicherheit
Fehlerbehebung
Testen
Mitwirken
Führen Sie den folgenden Befehl aus, um die PHP-Curl-Klasse zu installieren:
composer require php-curl-class/php-curl-class
So installieren Sie die neueste Commit-Version:
composer require php-curl-class/php-curl-class @dev
Installationsanweisungen zur Verwendung des composer
-Befehls finden Sie unter https://github.com/composer/composer.
Die PHP Curl-Klasse funktioniert mit PHP 8.4, 8.3, 8.2, 8.1, 8.0 und 7.4.
Weitere Beispiele finden Sie unter /examples.
erfordern __DIR__ . '/vendor/autoload.php';use CurlCurl;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'Fehler: ' . $curl->errorMessage . "n";$curl->diagnose(); } else {echo 'Antwort:' . "n";var_dump($curl->response); }
// https://www.example.com/search?q=keyword$curl = new Curl();$curl->get('https://www.example.com/search', ['q' = > 'Schlüsselwort', ]);
$curl = new Curl();$curl->post('https://www.example.com/login/', ['username' => 'myusername','password' => 'mypassword', ]);
$curl = new Curl();$curl->setBasicAuthentication('username', 'password');$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('key', 'value');$curl->get('https://www.example.com/');if ($curl->error) {echo 'Error: ' . $curl->errorMessage . "N"; } else {echo 'Antwort:' . "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', ]);
// Alle unterstützten Kodierungstypen aktivieren und eine Datei herunterladen.$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .bin', '/tmp/myfile.bin');
// Zugriff auf Header ohne Berücksichtigung der Groß- und Kleinschreibung.$curl = new Curl();$curl->download('https://www.example.com/image.png', '/tmp/myimage.png');echo $curl->responseHeaders['Content-Type'] . "N"; // image/pngecho $curl->responseHeaders['ConNTeNT-TyPE'] . "N"; // Bild/png
// Manuelles Aufräumen.$curl->close();
// Beispielzugriff auf Curl object.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (kompatibel; MSIE 7.0; Windows NT 5.1');curl_close($curl->curl);
erfordern __DIR__ . '/vendor/autoload.php';CurlMultiCurl verwenden;// Anfragen parallel zu Rückruffunktionen.$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url . '" war erfolgreich.' . "n";echo 'response:' . "n";var_dump($instance->response); });$multi_curl->error(function($instance) {echo 'Aufruf an "' . $instance->url . '" war nicht erfolgreich.' . "n";echo 'Fehlercode: ' . $instance-> errorCode . "n";echo 'error message: ' . });$multi_curl->complete(function($instance) {echo 'Aufruf abgeschlossen' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'hello world', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'hello world', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'hello world', ]);$multi_curl->start(); // Blockiert, bis alle Elemente in der Warteschlange verarbeitet wurden.
Weitere Beispiele finden Sie unter /examples.
Curl::__construct($base_url = null, $options = []) Curl::__destruct() Curl::__get($name) Curl::afterSend($callback) Curl::attemptRetry() Curl::beforeSend($callback) Curl::buildPostData($data) Curl::call() Curl::close() Curl::complete($callback) Curl::delete($url, $query_parameters = [], $data = []) Curl::diagnose($return = false) Curl::disableTimeout() Curl::displayCurlOptionValue($option, $value = null) Curl::download($url, $mixed_filename) Curl::error($callback) Curl::exec($ch = null) Curl::execDone() Curl::fastDownload($url, $filename, $connections = 4) Curl::get($url, $data = []) Curl::getAttempts() Curl::getBeforeSendCallback() Curl::getCompleteCallback() Curl::getCookie($key) 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($key) 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::isError() Curl::isHttpError() Curl::options($url, $data = []) Curl::patch($url, $data = []) Curl::post($url, $data = '', $follow_303_with_post = false) Curl::progress($callback) Curl::put($url, $data = []) Curl::removeHeader($key) Curl::reset() Curl::search($url, $data = []) Curl::setAutoReferer($auto_referer = true) Curl::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($username, $password = '') Curl::setConnectTimeout($seconds) Curl::setCookie($key, $value) Curl::setCookieFile($cookie_file) Curl::setCookieJar($cookie_jar) Curl::setCookieString($string) Curl::setCookies($cookies) Curl::setDefaultDecoder($mixed = 'json') Curl::setDefaultHeaderOut() Curl::setDefaultJsonDecoder() Curl::setDefaultTimeout() Curl::setDefaultUserAgent() Curl::setDefaultXmlDecoder() Curl::setDigestAuthentication($username, $password = '') Curl::setFile($file) Curl::setFollowLocation($follow_location = true) Curl::setForbidReuse($forbid_reuse = true) Curl::setHeader($key, $value) Curl::setHeaders($headers) Curl::setInterface($interface) Curl::setJsonDecoder($mixed) Curl::setMaxFilesize($bytes) Curl::setMaximumRedirects($maximum_redirects) Curl::setOpt($option, $value) Curl::setOpts($options) Curl::setPort($port) Curl::setProtocols($protocols) Curl::setProxy($proxy, $port = null, $username = null, $password = null) Curl::setProxyAuth($auth) Curl::setProxyTunnel($tunnel = true) Curl::setProxyType($type) Curl::setRange($range) Curl::setRedirectProtocols($redirect_protocols) Curl::setReferer($referer) Curl::setReferrer($referrer) Curl::setRetry($mixed) Curl::setStop($callback = null) Curl::setTimeout($seconds) Curl::setUrl($url, $mixed_data = '') Curl::setUserAgent($user_agent) Curl::setXmlDecoder($mixed) Curl::stop() Curl::success($callback) Curl::unsetHeader($key) 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($callback) MultiCurl::beforeSend($callback) MultiCurl::close() MultiCurl::complete($callback) MultiCurl::disableTimeout() MultiCurl::error($callback) MultiCurl::getActiveCurls() MultiCurl::getOpt($option) MultiCurl::removeHeader($key) MultiCurl::setAutoReferer($auto_referer = true) MultiCurl::setAutoReferrer($auto_referrer = true) MultiCurl::setBasicAuthentication($username, $password = '') MultiCurl::setConcurrency($concurrency) MultiCurl::setConnectTimeout($seconds) MultiCurl::setCookie($key, $value) MultiCurl::setCookieFile($cookie_file) MultiCurl::setCookieJar($cookie_jar) MultiCurl::setCookieString($string) MultiCurl::setCookies($cookies) MultiCurl::setDigestAuthentication($username, $password = '') MultiCurl::setFile($file) MultiCurl::setFollowLocation($follow_location = true) MultiCurl::setForbidReuse($forbid_reuse = true) MultiCurl::setHeader($key, $value) MultiCurl::setHeaders($headers) MultiCurl::setInterface($interface) MultiCurl::setJsonDecoder($mixed) MultiCurl::setMaximumRedirects($maximum_redirects) MultiCurl::setOpt($option, $value) MultiCurl::setOpts($options) MultiCurl::setPort($port) MultiCurl::setProxies($proxies) MultiCurl::setProxy($proxy, $port = null, $username = null, $password = null) MultiCurl::setProxyAuth($auth) MultiCurl::setProxyTunnel($tunnel = true) MultiCurl::setProxyType($type) MultiCurl::setRange($range) MultiCurl::setRateLimit($rate_limit) MultiCurl::setReferer($referer) MultiCurl::setReferrer($referrer) MultiCurl::setRequestTimeAccuracy() MultiCurl::setRetry($mixed) MultiCurl::setTimeout($seconds) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($mixed) MultiCurl::start() MultiCurl::stop() MultiCurl::success($callback) MultiCurl::unsetHeader($key) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
Sicherheitsüberlegungen finden Sie unter SICHERHEIT.
Hilfe zur Fehlerbehebung finden Sie unter FEHLERBEHEBUNG.
Testinformationen finden Sie unter TESTEN.
Suchen Sie nach offenen Problemen oder öffnen Sie ein neues Problem, um eine Diskussion über einen Fehler oder eine Funktion zu starten.
Forken Sie das Repository auf GitHub, um mit der Durchführung Ihrer Änderungen zu beginnen.
Schreiben Sie einen oder mehrere Tests für die neue Funktion oder die den Fehler aufdecken.
Nehmen Sie Codeänderungen vor, um die Funktion zu implementieren oder den Fehler zu beheben.
Senden Sie eine Pull-Anfrage, um Ihre Änderungen zusammenzuführen und zu veröffentlichen.