php curl class
11.0.0
PHP Curl 類別可以輕鬆發送 HTTP 請求並與 Web 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 {回顯'響應:'。 "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/', ['使用者名稱' => '我的使用者名稱','密碼' => '我的密碼', ]);
$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- >錯誤){回顯'錯誤:'。 $curl->errorMessage 。 “n”; } else {回顯'響應:'。 "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', ]);
// 啟用所有支援的編碼類型並下載檔案。 .bin', '/tmp/myfile.bin');
// 不區分大小寫地訪問headers.$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”; // 圖片/png
// 手動清理。
// 存取curl物件的範例.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;// 與回呼函數並行請求。 >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' => '你好世界', ]);$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 = []) 捲曲::__destruct() 捲曲::__get($name) 捲曲::afterSend($回呼) 捲曲::嘗試重試() 捲曲::beforeSend($callback) 捲曲::buildPostData($data) 捲曲::呼叫() 捲曲::關閉() 捲曲::完成($回呼) Curl::delete($url, $query_parameters = [], $data = []) 捲曲::診斷($return = false) 捲曲::禁用超時() Curl::displayCurlOptionValue($option, $value = null) Curl::download($url, $mixed_filename) 捲曲::錯誤($回呼) 捲曲::exec($ch = null) 捲曲::execDone() Curl::fastDownload($url, $檔名, $connections = 4) 捲曲::get($url, $data = []) 捲曲::getAttempts() 捲曲::getBeforeSendCallback() 捲曲::getCompleteCallback() 捲曲::getCookie($key) 捲曲::getCurl() 捲曲::getCurlErrorCode() 捲曲::getCurlErrorMessage() Curl::getDownloadCompleteCallback() 捲曲::getDownloadFileName() 捲曲::getErrorCallback() 捲曲::getErrorCode() 捲曲::getErrorMessage() 捲曲::getFileHandle() 捲曲::getHttpErrorMessage() 捲曲::getHttpStatusCode() 捲曲::getId() 捲曲::getInfo($opt = null) 捲曲::getJsonDecoder() 捲曲::getOpt($選項) 捲曲::getOptions() 捲曲::getRawResponse() 捲曲::getRawResponseHeaders() 捲曲::getRemainingRetries() 捲曲::getRequestHeaders() 捲曲::getResponse() 捲曲::getResponseCookie($key) 捲曲::getResponseCookies() 捲曲::getResponseHeaders() 捲曲::getRetries() 捲曲::getRetryDecider() 捲曲::getSuccessCallback() 捲曲::getUrl() 捲曲::getUserSetOptions() 捲曲::getXmlDecoder() 捲曲::頭($url, $data = []) 捲曲::isChildOfMultiCurl() 捲曲::isCurlError() 捲曲::isError() 捲曲::isHttpError() 捲曲::選項($url, $data = []) 捲曲::補丁($url, $data = []) 捲曲::post($url, $data = '', $follow_303_with_post = false) 捲曲::進度($回呼) 捲曲::put($url, $data = []) 捲曲::removeHeader($key) 捲曲::重置() 捲曲::搜尋($url, $data = []) 捲曲::setAutoReferer($auto_referer = true) 捲曲::setAutoReferrer($auto_referrer = true) Curl::setBasicAuthentication($使用者名稱, $密碼 = '') Curl::setConnectTimeout($秒) 捲曲::setCookie($鍵,$值) 捲曲::setCookieFile($cookie_file) 捲曲::setCookieJar($cookie_jar) 捲曲::setCookieString($string) 捲曲::setCookies($cookies) 捲曲::setDefaultDecoder($mixed = 'json') 捲曲::setDefaultHeaderOut() 捲曲::setDefaultJsonDecoder() 捲曲::setDefaultTimeout() 捲曲::setDefaultUserAgent() 捲曲::setDefaultXmlDecoder() Curl::setDigestAuthentication($使用者名稱, $密碼 = '') 捲曲::setFile($檔) 捲曲::setFollowLocation($follow_location = true) 捲曲::setForbidReuse($forbid_reuse = true) 捲曲::setHeader($key, $value) 捲曲::setHeaders($headers) 捲曲::setInterface($介面) 捲曲::setJsonDecoder($mixed) 捲曲::setMaxFilesize($位元組) 捲曲::setMaximumRedirects($maximum_redirects) 捲曲::setOpt($選項,$值) 捲曲::setOpts($選項) 捲曲::setPort($埠) 捲曲::setProtocols($協議) Curl::setProxy($proxy, $port = null, $username = null, $password = null) 捲曲::setProxyAuth($auth) 捲曲::setProxyTunnel($tunnel = true) 捲曲::setProxyType($type) 捲曲::setRange($範圍) 捲曲::setRedirectProtocols($redirect_protocols) 捲曲::setReferer($referer) 捲曲::setReferrer($referrer) 捲曲::setRetry($mixed) 捲曲::setStop($callback = null) 捲曲::setTimeout($秒) 捲曲::setUrl($url, $mixed_data = '') 捲曲::setUserAgent($user_agent) 捲曲::setXmlDecoder($mixed) 捲曲::停止() 捲曲::成功($回呼) 捲曲::unsetHeader($key) 捲曲::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::錯誤($回呼) MultiCurl::getActiveCurls() MultiCurl::getOpt($選項) MultiCurl::removeHeader($key) MultiCurl::setAutoReferer($auto_referer = true) MultiCurl::setAutoReferrer($auto_referrer = true) MultiCurl::setBasicAuthentication($使用者名稱, $密碼 = '') MultiCurl::setConcurrency($並發) MultiCurl::setConnectTimeout($秒) MultiCurl::setCookie($key, $value) MultiCurl::setCookieFile($cookie_file) MultiCurl::setCookieJar($cookie_jar) MultiCurl::setCookieString($string) MultiCurl::setCookies($cookies) MultiCurl::setDigestAuthentication($使用者名稱, $密碼 = '') MultiCurl::setFile($檔) 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($選項, $值) MultiCurl::setOpts($選項) MultiCurl::setPort($埠) MultiCurl::setProxies($proxies) MultiCurl::setProxy($proxy, $port = null, $username = null, $password = null) MultiCurl::setProxyAuth($auth) MultiCurl::setProxyTunnel($tunnel = true) MultiCurl::setProxyType($type) MultiCurl::setRange($範圍) 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::start() 多捲曲::停止() MultiCurl::成功($callback) MultiCurl::unsetHeader($key) MultiCurl::unsetProxy() MultiCurl::verbose($on = true, $output = 'STDERR')
有關安全注意事項,請參閱安全性。
請參閱故障排除以取得故障排除協助。
有關測試信息,請參閱測試。
檢查未解決的問題或開啟新問題以開始圍繞錯誤或功能進行討論。
在 GitHub 上分叉儲存庫以開始進行變更。
為新功能或暴露錯誤編寫一個或多個測試。
更改程式碼以實現該功能或修復錯誤。
發送拉取請求以合併並發布您的變更。