php-mod/curl

此包已被废弃,不再维护。作者建议使用 curl/curl 包。

PHP的cURL类

2.5.0 2022-12-14 13:27 UTC

README

此库提供了一个面向对象且无依赖的PHP cURL扩展包装器。

Maintainability Test Coverage Total Downloads Tests

如果您在安装或使用过程中有任何疑问或问题,请 创建一个问题

安装

要使用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);

测试

为了测试此库

  1. 创建一个分支
  2. 将分支克隆到您的机器上
  3. 安装依赖项 composer install
  4. 构建并启动Docker镜像(在 tests/server 中) docker build . -t curlserver start docker run -p 1234:80 curlserver
  5. 运行单元测试 ./vendor/bin/phpunit tests