php curl class
11.0.0
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->응답); }
// 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', '값');$curl->get('https://www.example.com/');if ($curl->error) {echo '오류: ' . $curl->errorMessage . "N"; } else {echo '응답:' . "n";var_dump($curl->응답); }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' => '잭','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' => new 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['콘텐츠 유형'] . "N"; // image/pngecho $curl->responseHeaders['ConTeNT-TyPE'] . "N"; // 이미지/png
// 수동 정리.$curl->close();
// 컬에 대한 액세스 예 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 'call to "' . $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 . });$multi_curl->complete(function($instance) {echo '호출 완료' . "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(); // 대기열의 모든 항목이 처리될 때까지 차단합니다.
더 많은 예제는 /examples에서 확인할 수 있습니다.
Curl::__construct($base_url = null, $options = []) 컬::__destruct() 컬::__get($name) 컬::afterSend($callback) 컬::attemptRetry() 컬::전송($callback) 컬::buildPostData($data) 컬::콜() 컬::닫기() 컬::완료($callback) Curl::delete($url, $query_parameters = [], $data = []) 컬::진단($return = false) 컬::disableTimeout() Curl::displayCurlOptionValue($option, $value = null) 컬::다운로드($url, $mixed_filename) 컬::오류($callback) 컬::exec($ch = null) 컬::execDone() Curl::fastDownload($url, $filename, $connections = 4) 컬::get($url, $data = []) 컬::getAttempts() 컬::getBeforeSendCallback() 컬::getCompleteCallback() 컬::getCookie($key) 컬::getCurl() 컬::getCurlErrorCode() 컬::getCurlErrorMessage() 컬::getDownloadCompleteCallback() 컬::get다운로드파일이름() 컬::getErrorCallback() 컬::getErrorCode() 컬::getErrorMessage() 컬::getFileHandle() 컬::getHttpErrorMessage() 컬::getHttpStatusCode() 컬::getId() 컬::getInfo($opt = null) 컬::getJsonDecoder() 컬::getOpt($옵션) 컬::getOptions() 컬::getRawResponse() Curl::getRawResponseHeaders() 컬::getRemainingRetries() 컬::getRequestHeaders() 컬::getResponse() 컬::getResponseCookie($key) 컬::getResponseCookies() 컬::getResponseHeaders() 컬::getRetries() 컬::getRetryDecider() 컬::getSuccessCallback() 컬::getUrl() 컬::getUserSetOptions() 컬::getXmlDecoder() 컬::헤드($url, $data = []) 컬::isChildOfMultiCurl() 컬::isCurlError() 컬::isError() 컬::isHttpError() 컬::옵션($url, $data = []) 컬::패치($url, $data = []) Curl::post($url, $data = '', $follow_303_with_post = false) 컬::진행($callback) 컬::put($url, $data = []) 컬::제거헤더($key) 컬::리셋() 컬::검색($url, $data = []) Curl::setAutoReferer($auto_referer = true) Curl::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($username, $password = '') Curl::setConnectTimeout($초) 컬::setCookie($key, $value) Curl::setCookieFile($cookie_file) 컬::setCookieJar($cookie_jar) 컬::setCookieString($string) 컬::setCookies($cookies) Curl::setDefaultDecoder($mixed = 'json') 컬::setDefaultHeaderOut() Curl::setDefaultJsonDecoder() 컬::setDefaultTimeout() 컬::setDefaultUserAgent() Curl::setDefaultXmlDecoder() Curl::setDigestAuthentication($username, $password = '') 컬::세트파일($file) Curl::setFollowLocation($follow_location = true) Curl::setForbidReuse($forbid_reuse = true) 컬::setHeader($key, $value) 컬::setHeaders($headers) 컬::setInterface($인터페이스) Curl::setJsonDecoder($mixed) 컬::setMaxFilesize($bytes) Curl::setMaximumRedirects($maximum_redirects) 컬::setOpt($option, $value) 컬::setOpts($options) 컬::setPort($port) 컬::setProtocols($protocols) Curl::setProxy($proxy, $port = null, $username = null, $password = null) 컬::setProxyAuth($auth) Curl::setProxyTunnel($tunnel = true) 컬::setProxyType($type) 컬::setRange($range) Curl::setRedirectProtocols($redirect_protocols) 컬::setReferer($referer) 컬::setReferrer($referrer) 컬::setRetry($mixed) 컬::setStop($callback = null) Curl::setTimeout($초) Curl::setUrl($url, $mixed_data = '') 컬::setUserAgent($user_agent) Curl::setXmlDecoder($mixed) 컬::스톱() 컬::성공($callback) 컬::unsetHeader($key) 컬::unsetProxy() Curl::verbose($on = true, $output = 'STDERR') MultiCurl::__construct($base_url = null) MultiCurl::__destruct() MultiCurl::addCurl(컬 $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::완료($callback) MultiCurl::disableTimeout() MultiCurl::오류($callback) MultiCurl::getActiveCurls() MultiCurl::getOpt($옵션) 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::세트파일($file) MultiCurl::setFollowLocation($follow_location = true) MultiCurl::setForbidReuse($forbid_reuse = true) MultiCurl::setHeader($key, $value) MultiCurl::setHeaders($headers) MultiCurl::setInterface($인터페이스) 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($초) MultiCurl::setUrl($url, $mixed_data = '') MultiCurl::setUserAgent($user_agent) MultiCurl::setXmlDecoder($mixed) 멀티컬::시작() 멀티컬::스톱() MultiCurl::성공($callback) MultiCurl::unsetHeader($key) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
보안 고려 사항은 보안을 참조하세요.
문제 해결에 대한 도움말은 문제 해결을 참조하세요.
테스트 정보는 테스트를 참조하세요.
미해결 문제를 확인하거나 새 문제를 열어 버그나 기능에 대한 토론을 시작하세요.
변경 작업을 시작하려면 GitHub의 리포지토리를 포크하세요.
새로운 기능에 대한 테스트를 하나 이상 작성하거나 버그를 노출시킵니다.
기능을 구현하거나 버그를 수정하려면 코드를 변경하세요.
변경 사항을 병합하고 게시하려면 풀 요청을 보내세요.