本文概述
- 7. Curl by dcai
- 6. CurlWrapper
- 5. Rolling cURLx
- 4. PHP Curl
- 3. Curl Easy
- 2. Curl by Shuber
- 1. PHP Curl Class
7. Curl by dcai该包装器提供了一个抽象层, 可简化PHP cURL库的语法:
$http = new dcai\curl;
// enable cache
$http = new dcai\curl(array('cache'=>
true));
// enable cookie
$http = new dcai\curl(array('cookie'=>
true));
// enable proxy
$http = new dcai\curl(array('proxy'=>
true));
// HTTP GET
$response = $http->
get('http://example.com');
// HTTP POST
$response = $http->
post('http://example.com/', array('q'=>
'words', 'name'=>
'moodle'));
// POST RAW
$xml = '<
action>
perform<
/action>
';
$response = $http->
post('http://example.com/', $xml);
// HTTP PUT
$response = $http->
put('http://example.com/', array('file'=>
'/var/www/test.txt');
6. CurlWrapperCurlWrapper是用于PHP cURL扩展的灵活包装类。你可以使用以下方法轻松初始化该库的实例:
try {
$curl = new CurlWrapper();
} catch (CurlWrapperException $e) {
echo $e->
getMessage();
}
CurlWrapper对象支持5种类型的请求:HEAD, GET, POST, PUT和DELETE。你必须指定一个要请求的URL, 并可以选择指定一个关联数组或变量的查询字符串与之一起发送:
$response = $curl->
head($url, $params);
$response = $curl->
get($url, $params);
$response = $curl->
post($url, $params);
$response = $curl->
put($url, $params);
$response = $curl->
delete($url, $params);
5. Rolling cURLxRolling Curl是一个易于使用的cURL Multi包装器, 具有非常酷的名称。它旨在使PHP中的并发http请求尽可能容易。首先使用你想一次打开的最大并发请求数来初始化类:
$RCX = new RollingCurlX(10);
此后的所有请求将排队, 直到一个请求完成:
$url = 'http://www.google.com/search?q=apples';
$post_data = http://www.srcmini.com/['user' =>
'bob', 'token' =>
'dQw4w9WgXcQ'];
//set to NULL if not using POST
$user_data = http://www.srcmini.com/['foo', $whatever];
$options = [CURLOPT_FOLLOWLOCATION =>
false];
function callback_functn($response, $url, $request_info, $user_data, $time) {
$time;
//how long the request took in milliseconds (float)
$request_info;
//array returned by curl_getinfo($ch), plus a couple extras
}$RCX->
addRequest($url, $post_data, 'callback_functn', $user_data, $options, $headers);
发送请求。阻塞直到所有请求完成或超时:
$RCX->
execute();
4. PHP CurlPHP Curl是一个非常简单的cURL PHP curl包装类。根据作者的说法, 此类是用于PHP的curl功能的最小的OOP包装器。注意, 这并不意味着是高级抽象。你仍然应该知道” 纯PHP” curl的工作原理, 需要了解curl选项的设置, 还需要了解一些HTTP基础知识。它的语法对开发人员友好:
// newRequest, newJsonRequest and newRawRequest returns a Request object
$request = $curl->
newRequest('post', $url, ['foo' =>
'bar'])
->
setHeader('Accept-Charset', 'utf-8')
->
setHeader('Accept-Language', 'en-US')
->
setOption(CURLOPT_CAINFO, '/path/to/cert')
->
setOption(CURLOPT_FOLLOWLOCATION, true);
$response = $request->
send();
3. Curl EasyCurl Easy是PHP的cURL扩展的包装。支持并行和非阻塞请求。这是一个很小但功能强大且健壮的库, 可加快处理速度。如果你厌倦了将PHP cURL扩展程序与它的过程接口一起使用, 但是还希望控制脚本执行, 那么这对你来说是个不错的选择。该库:
- 经过广泛的单元测试。
- 具有中等级别接口的轻量级库。它不是多合一的库。
- 具有非常简单的接口的并行/异步连接。
- 在运行时并行附加/分离请求!
- 支持回调, 因此你可以控制执行过程。
- 智能设置器, 以替代CURLOPT_ *常量。
- 如果你知道cURL php扩展名, 则无需从头开始学习
<
?php
// We will check current Bitcoin price via API.
$request = new \cURL\Request('https://bitpay.com/rates/USD');
$request->
getOptions()
->
set(CURLOPT_TIMEOUT, 5)
->
set(CURLOPT_RETURNTRANSFER, true);
$response = $request->
send();
$feed = json_decode($response->
getContent(), true);
echo "Current Bitcoin price: " . $feed['data']['rate'] . " " . $feed['data']['code'] . "\n";
2. Curl by ShuberCurl库是PHP的基本CURL包装器。 Curl对象支持5种类型的请求:HEAD, GET, POST, PUT和DELETE。你必须指定要请求的url, 并可以选择指定要与之一起发送的关联数组或变量字符串。只需要求并初始化Curl类, 如下所示:
require_once 'curl.php';
$curl = new Curl;
$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());
1. PHP Curl ClassPHP Curl Class是cURL的一个很好编写的包装, 它使发送HTTP请求和与任何类型的Web API集成变得非常容易。 PHP Curl Class可与PHP 5.3、5.4、5.5、5.6、7.0、7.1和HHVM一起使用。该库是众所周知的, 并提供了非常简单的语法:
require __DIR__ . '/vendor/autoload.php';
use \Curl\Curl;
$curl = new Curl();
$curl->
get('https://www.example.com/');
if ($curl->
error) {
echo 'Error: ' . $curl->
errorCode . ': ' . $curl->
errorMessage . "\n";
} else {
echo 'Response:' . "\n";
var_dump($curl->
response);
}
【7个适用于PHP的最佳Curl包装器库】如果你知道使用PHP编写的cURL扩展的另一个很棒的包装库, 请在注释框中与社区共享。
推荐阅读
- 5个用于Cookie操作的最佳JavaScript库
- 7个最好的PHP Http客户端库
- 7个最佳360°(矩形)图像查看器JavaScript插件
- 5个最佳开放源代码HTML渲染库,可将HTML5/CSS3用作C#的用户界面
- 7个最好的开源终端仿真器
- 5个最佳开源PHP代码混淆器库
- 十大最佳Android评分栏小部件
- 9个最好的React应用程序的最佳优化技术
- 5个最好的PHP开源PDF生成库