Класс PHP Curl упрощает отправку HTTP-запросов и интеграцию с веб-API.
Установка
Требования
Быстрый старт и примеры
Доступные методы
Безопасность
Поиск неисправностей
Тестирование
Содействие
Чтобы установить класс PHP Curl, выполните следующую команду:
composer require php-curl-class/php-curl-class
Чтобы установить последнюю версию фиксации:
composer require php-curl-class/php-curl-class @dev
Инструкции по установке для использования команды composer
можно найти на https://github.com/composer/composer.
Класс PHP Curl работает с PHP 8.4, 8.3, 8.2, 8.1, 8.0 и 7.4.
Дополнительные примеры доступны в разделе /examples.
требуется __DIR__ . '/vendor/autoload.php';use CurlCurl;$curl = new Curl();$curl->get('https://www.example.com/');if ($curl->error) {echo 'Ошибка: ' . $curl->errorMessage. "n";$curl->diagnose(); } else {echo 'Ответ:' . "n";var_dump($curl->response); }
// https://www.example.com/search?q=keyword$curl = new Curl();$curl->get('https://www.example.com/search', ['q' = > «ключевое слово», ]);
$curl = new Curl();$curl->post('https://www.example.com/login/', ['username' => 'myusername','password' => 'mypassword', ]);
$curl = new Curl();$curl->setBasicAuthentication('имя пользователя', 'пароль');$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. «н»; } else {echo 'Ответ:' . "n";var_dump($curl->response); }var_dump($curl->requestHeaders);var_dump($curl->responseHeaders);
$curl = новый Curl();$curl->setFollowLocation();$curl->get('https://shortn.example.com/bHbVsP');
$curl = new Curl();$curl->put('https://api.example.com/user/', ['first_name' => 'Зак','last_name' => 'Борбоа', ]);
$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' => новый CURLFile('path/to/file.jpg'), ]);
$curl = new Curl();$curl->delete('https://api.example.com/user/', ['id' => '1234', ]);
// Включаем все поддерживаемые типы кодировки и загружаем файл.$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .bin', '/tmp/myfile.bin');
// Доступ к заголовкам без учета регистра.$curl = new Curl();$curl->download('https://www.example.com/image.png', '/tmp/myimage.png');echo $curl->responseHeaders['Content-Type'] . «н»; // изображение/pngecho $curl->responseHeaders['CoNTeNT-TyPE'] . «н»; // изображение/png
// Очистка вручную.$curl->close();
// Пример доступа к Curl object.curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (совместимо; MSIE 7.0; Windows NT 5.1');curl_close($curl->curl);
требуется __DIR__ . '/vendor/autoload.php';use CurlMultiCurl;// Запросы параллельно с функциями обратного вызова.$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'вызов "' . $instance ->url . '" прошел успешно. "n";echo 'ответ:' . "n";var_dump($instance->response); });$multi_curl->error(function($instance) {echo 'вызов "' . $instance->url . '" оказался неудачным.' . "n";echo 'код ошибки: ' . $instance-> errorCode . "n";echo 'сообщение об ошибке: ' $instance->errorMessage "n"; });$multi_curl->complete(function($instance) {echo 'вызов завершен' . "n"; });$multi_curl->addGet('https://www.google.com/search', ['q' => 'привет, мир', ]);$multi_curl->addGet('https://duckduckgo.com/', ['q' => 'привет, мир', ]);$multi_curl->addGet('https://www.bing.com/search', ['q' => 'привет, мир', ]);$multi_curl->start(); // Блокируется до тех пор, пока не будут обработаны все элементы в очереди.
Дополнительные примеры доступны в разделе /examples.
Curl::__construct($base_url = null, $options = []) Curl::__destruct() Curl::__get($name) Curl::afterSend($callback) Curl::attemptRetry() Curl::beforeSend($callback) Curl::buildPostData($данные) Керл::вызов() Скручивание::закрыть() 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 = ноль) 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($секунды) 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($протоколы) 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($секунды) Curl::setUrl($url, $mixed_data = '') Curl::setUserAgent($user_agent) Curl::setXmlDecoder($mixed) Скручивание::стоп() 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::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($секунды) 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($смешанный) MultiCurl::setMaximumRedirects($maximum_redirects) MultiCurl::setOpt($option, $value) MultiCurl::setOpts($options) MultiCurl::setPort($port) MultiCurl::setProxies($прокси) 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($секунды) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($mixed) Мультикерл::start() Мультикерл::стоп() MultiCurl::success($callback) MultiCurl::unsetHeader($key) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
См. БЕЗОПАСНОСТЬ для получения информации о безопасности.
См. раздел УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ для получения помощи по устранению неполадок.
См. ТЕСТИРОВАНИЕ для получения информации о тестировании.
Проверьте наличие открытых проблем или откройте новую проблему, чтобы начать обсуждение ошибки или функции.
Создайте форк репозитория на GitHub, чтобы начать вносить изменения.
Напишите один или несколько тестов для новой функции или выявления ошибки.
Внесите изменения в код, чтобы реализовать функцию или исправить ошибку.
Отправьте запрос на включение, чтобы ваши изменения были объединены и опубликованы.