php-mod / curl
2.5.0
2022-12-14 13:27 UTC
Requires
- php: ^5.6 | ^7.0 | ^8.0
- ext-curl: *
Requires (Dev)
- yoast/phpunit-polyfills: ^0.2.0
README
此库提供了一个面向对象且无依赖的PHP cURL扩展包装器。
如果您在安装或使用过程中有任何疑问或问题,请 创建一个问题。
安装
要使用composer安装此库,请在控制台中运行以下命令
composer require curl/curl
使用示例
使用get方法的CURL的一些示例
$curl = (new Curl\Curl())->get('http://www.example.com/'); if ($curl->isSuccess()) { // do something with response var_dump($curl->response); } // ensure to close the curl connection $curl->close();
或者使用参数,值将被编码为 PHP_QUERY_RFC1738
$curl = (new Curl\Curl())->get('http://www.example.com/search', [ 'q' => 'keyword', ]);
使用post方法的示例
$curl = new Curl\Curl(); $curl->post('http://www.example.com/login/', [ 'username' => 'myusername', 'password' => 'mypassword', ]);
使用基本认证的示例,移除默认用户代理并与错误处理一起工作
$curl = new Curl\Curl(); $curl->setBasicAuthentication('username', 'password'); $curl->setUserAgent(''); $curl->setHeader('X-Requested-With', 'XMLHttpRequest'); $curl->setCookie('key', 'value'); $curl->get('http://www.example.com/'); if ($curl->error) { echo $curl->error_code; } else { echo $curl->response; } var_dump($curl->request_headers); var_dump($curl->response_headers);
SSL验证设置
$curl = new Curl\Curl(); $curl->setOpt(CURLOPT_RETURNTRANSFER, TRUE); $curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE); $curl->get('https://encrypted.example.com/');
访问curl对象的示例
curl_set_opt($curl->curl, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1'); curl_close($curl->curl);
下载文件或其他内容的示例
$curl = new Curl\Curl(); // open the file where the request response should be written $file_handle = fopen($target_file, 'w+'); // pass it to the curl resource $curl->setOpt(CURLOPT_FILE, $file_handle); // do any type of request $curl->get('https://github.com'); // disable writing to file $curl->setOpt(CURLOPT_FILE, null); // close the file for writing fclose($file_handle);
测试
为了测试此库
- 创建一个分支
- 将分支克隆到您的机器上
- 安装依赖项
composer install
- 构建并启动Docker镜像(在
tests/server
中)docker build . -t curlserver
startdocker run -p 1234:80 curlserver
- 运行单元测试
./vendor/bin/phpunit tests