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->error) {echo '错误:' 。 $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', ]);
// 启用所有支持的编码类型并下载文件。$curl = new Curl();$curl->setOpt(CURLOPT_ENCODING , '');$curl->download('https://www.example.com/file .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->close();
// 访问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;// 与回调函数并行请求。$multi_curl = new MultiCurl();$multi_curl->success(function($instance) {echo 'call to "' . $instance ->url '" 成功。' . "n";echo '响应:' . "n";var_dump($实例->响应); });$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 上分叉存储库以开始进行更改。
为新功能或暴露错误编写一个或多个测试。
更改代码以实现该功能或修复错误。
发送拉取请求以合并并发布您的更改。