maxwen/yii2-curl

Yii2 框架的基curl包装器

维护者

详细信息

github.com/max-wen/yii2-curl

源代码

安装次数: 10,565

依赖: 0

建议者: 0

安全性: 0

星星: 8

关注者: 2

分支: 179

类型:yii2-extension

1.0 2016-01-08 02:42 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:48:24 UTC


README

shuber/curl 分支,一个 Yii2 框架的基curl包装器

通过 Composer 安装

composer require maxwen/yii2-curl

使用方法

执行请求

Curl 对象支持 5 种请求类型:HEAD、GET、POST、PUT 和 DELETE。您必须指定一个请求的 URL,并可选择指定一个关联数组或字符串形式的变量一同发送。

// set options
$curl = new \maxwen\yii\curl\Curl();
$curlOptions = [
		// 'CURLOPT_SSL_VERIFYHOST'	=> true,
		'CURLOPT_SSL_VERIFYPEER'	=> false,
		'CURLOPT_RETURNTRANSFER' 	=> true,
		'CURLOPT_TIMEOUT' 			=> 30,
	];
$curl->options = $curlOptions;
// send requests
$response = $curl->head($url, $vars = array());
$response = $curl->get($url, $vars = array()); # The Curl object will append the array of $vars to the $url as a query string
$response = $curl->post($url, $vars = array());
$response = $curl->put($url, $vars = array());
$response = $curl->delete($url, $vars = array());

要使用自定义请求方法,您可以调用 request 方法

$response = $curl->request('YOUR_CUSTOM_REQUEST_TYPE', $url, $vars = array());

所有内置的请求方法,如 putget,都只是简单地包装了 request 方法。例如,post 方法的实现如下

function post($url, $vars = array()) {
    return $this->request('POST', $url, $vars);
}

示例

$response = $curl->get('google.com?q=test');

# The Curl object will append '&some_variable=some_value' to the url
$response = $curl->get('google.com?q=test', array('some_variable' => 'some_value'));

$response = $curl->post('test.com/posts', array('title' => 'Test', 'body' => 'This is a test'));

所有请求都返回一个 CurlResponse 对象(见下文)或发生错误时返回 false。您可以使用 $curl->error() 方法访问错误字符串。

CurlResponse 对象

正常的 CURL 请求将返回一个包含头和体的响应字符串。此类解析这两个部分并将它们放置到单独的属性中。

例如

$response = $curl->get('google.com');
echo $response->body; # A string containing everything in the response except for the headers
print_r($response->headers); # An associative array containing the response headers

这将显示类似的内容

<html>
<head>
<title>Google.com</title>
</head>
<body>
Some more html...
</body>
</html>

Array
(
    [Http-Version] => 1.0
    [Status-Code] => 200
    [Status] => 200 OK
    [Cache-Control] => private
    [Content-Type] => text/html; charset=ISO-8859-1
    [Date] => Wed, 07 May 2008 21:43:48 GMT
    [Server] => gws
    [Connection] => close
)

CurlResponse 类定义了魔法 __toString() 方法,它将返回响应体,因此 echo $responseecho $response->body 相同

Cookie 会话

默认情况下,cookie 将存储在名为 curl_cookie.txt 的文件中。您可以通过以下方式更改此文件的名称

$curl->cookie_file = 'some_other_filename';

这允许您在请求之间维护会话

基本配置选项

您可以轻松地设置 referer 或 user-agent

$curl->referer = 'http://google.com';
$curl->user_agent = 'some user agent string';

您甚至可以手动设置这些头信息(见下文)

设置自定义头信息

您可以为请求设置自定义头信息

$curl->headers['Host'] = 12.345.678.90;
$curl->headers['Some-Custom-Header'] = 'Some Custom Value';

设置自定义 CURL 请求选项

默认情况下,Curl 对象将遵循重定向。您可以通过设置来禁用此功能

$curl->follow_redirects = false;

您可以设置/覆盖许多不同的 CURL 请求选项(有关详细信息,请参阅 curl_setopt 文档

# any of these will work
$curl->options['AUTOREFERER'] = true;
$curl->options['autoreferer'] = true;
$curl->options['CURLOPT_AUTOREFERER'] = true;
$curl->options['curlopt_autoreferer'] = true;