chillerlan/php-curl

该软件包已被废弃,不再维护。作者建议使用 chillerlan/php-httpinterface 软件包。

一个小巧的 cURL 包装器。PHP 7+

1.0.7 2018-04-15 03:02 UTC

This package is auto-updated.

Last update: 2019-08-05 17:26:36 UTC


README

一个简单的 cURL 包装器,主要用于 API 抓取目的。

version license Travis Coverage Scrunitizer Packagist downloads PayPal donate

特性

  • 没有 PSR-7!
  • 没有 87 层额外的抽象!
  • 没有花哨的功能!

如果你在寻找这样的工具,请继续使用 Guzzle

要求

文档

安装

需要 Composer

composer.json

你可以简单地克隆仓库,然后在根目录中运行 composer install。如果你想在其他地方使用它,只需将以下内容添加到你的 composer.json 中(注意:将 dev-master 替换为一个 版本边界

{
	"require": {
		"php": ">=7.0.7",
		"chillerlan/php-curl": "dev-master"
	}
}

手动安装

master发布版 下载所需版本的软件包,并将其内容解压到你的项目文件夹中。然后

  • 运行 composer install 以安装所需的依赖项并生成 /vendor/autoload.php
  • 如果你使用自定义的自动加载器,将命名空间 chillerlan\TinyCurl 指向软件包的 src 文件夹

完成!

用法

请求

最简单的方法

use chillerlan\TinyCurl\{Request, URL};

$response = (new Request)->fetch(new URL('http://example.url/path'));

//do stuff
$json = $response->json;

设置选项的方法

use chillerlan\TinyCurl\{Request, RequestOptions, URL};

$options = new RequestOptions;
$options->ca_info = '/path/to/cacert.pem';

// while creating the Request instance
$request = new Request($options);

// on an existing Request instance:
$request->setOptions($options);

// ...

Request 类还提供了一个方法,可以轻松提取短网址

use chillerlan\TinyCurl\Request;

(new Request)->extractShortUrl('https://#/ZSS6nVOcVp');

RequestTrait

RequestTrait 是一个简化版,以便快速实现。在你的类中使用 trait

class MyClass{
	use RequestTrait;
	
	public function __construct(){
		$this->setRequestCA('/path/to/cacert.pem');
	}
	
	public function doStuff(){
		$response = $this->fetch(new URL('https://example.url/path'));
	}
}

MultiRequest

MultiRequest 是对 curl_multi(也称为 "rolling cURL")的实现,用于并行、非阻塞地处理多个 cURL 请求。请参阅测试和示例以及我的 GW2 数据库,以了解实现细节。

RequestOptions 属性

属性 类型 默认值 允许的 描述
$user_agent 字符串 'chillerLAN-php-curl' * 每个请求使用的用户代理
$timeout 整型 10 * 请求超时
$curl_options 数组 [] [*] 每个实例的cURL选项
$ca_info 字符串 空值 * 指向一个cacert的路径
$max_redirects 整型 0 * 最大重定向次数

MultiRequestOptions属性

MultiRequestOptions对象通过以下属性扩展了RequestOptions

属性 类型 默认值 允许的 描述
$handler 字符串 空值 * 一个可选的处理程序FQCN(实现MultiResponseHandlerInterface
$window_size 整型 5 * 并发请求的最大值
$sleep 整型 100 * 启动时每个触发请求之间的休眠定时器(毫秒)

免责声明!

我对熔化的电话线、膨胀的硬盘、自引起的DDoS、破碎的屏幕等不承担责任。使用风险自负! ;)