curl
面向对象风格的Curl操作库,版本要求:PHP >= 5.3
使用示例
初始化
$curl = new Curl(); Curl::instance();
发送get请求
$curl->get('http://example.com'); // 可使用数组形式的url $curl->get(array('http://example.com/search', 'keywords' => 'grass'));
发送post请求
$curl->post('http://example.com/login/', array( 'username' => 'admin', 'password' => '123456', ));
发送json数据
$curl->setContentTypeJson()->post('http://example.com/login/', array( 'username' => 'admin', 'password' => '123456', ));
文件下载
$curl->download('http://example.com/file.zip', '/path/to/file.zip');
文件上传
$curl->addUploadFile('name', '/path/to/file.zip'); $curl->addUploadFile('img', '/path/to/demo.jpg'); $curl->post('http://example.com/upload.php');
转换结果为json格式
$curl->asJson()->get('http://example.com');
发送其他请求
$curl->put('http://api.example.com/user/', array( 'name' => 'Grass', )); $curl->put(); $curl->patch(); $curl->delete(); $curl->options(); $curl->request($url, 'HEAD'); // 自定义请求
获取结果
$curl->curl; // curl资源句柄 $curl->error_code; // curl错误码 $curl->error_message; // curl错误信息 $curl->request_url; // 请求的url $curl->request_header; // 发送的请求头 $curl->request_body; // 发送的请求体 $curl->request_cookie; // 发送的cookie $curl->upload_file; // 上传的文件 $curl->response; // 响应体 $curl->response_info; // curl_getinfo()获取到的响应信息 $curl->response_header; // 响应头 $curl->response_code; // HTTP响应的状态码
连贯调用
Curl::instance()->asJson()->get('http://example.com')->response;
多线程请求
$curl1 = new Curl(); $curl2 = new Curl(); Curl::multiExec(array( $curl1->multi()->get('http://api.example.com'), $curl2->multi()->post('http://api.example.com'), )); Curl::multiClose(); echo $curl1->response; echo $curl2->response;
其他可用方法
$curl->setOpt(); $curl->setHeader(); $curl->setCookie(); $curl->setAjax(); $curl->multi(); $curl->asText(); $curl->asJson(); $curl->reset(); $curl->setContentTypeUrlencoded(); $curl->setContentTypeFormData(); $curl->setContentTypeJson(); $curl->setContentTypeXml(); $curl->setDownloadFile(); $curl->setProgressCallback();
批量请求示例
$thread_num = 20; $urls = array_fill(0, 100, 'https://example.com'); $url_chunks = array_chunk($urls, $thread_num); $curls = array(); for ($i=0; $i < $thread_num; $i++) { $curls[] = new Curl(); } foreach ($url_chunks as $chunks) { $requests = array(); foreach ($chunks as $i => $url) { $requests[] = $curls[$i]->reset()->multi()->get($url); } Curl::multiExec($requests); foreach ($requests as $i => $curl) { echo $curl->response_code, ' '; } } Curl::multiClose();
执行测试
composer install phpunit
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。