ledc/curl

基于Curl的请求类库

v8.1.0 2024-03-29 00:40 UTC

This package is auto-updated.

Last update: 2024-09-29 01:39:19 UTC


README

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

Maintainability Test Coverage Total Downloads Tests

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

安装

要通过composer安装此库,请在控制台运行以下命令

composer require ledc/curl

使用示例

一些使用CURL和get的示例

use Ledc\Curl\Curl;

$curl = (new 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();

上传文件元数据

use Ledc\Curl\Curl;

$curl = new Curl();
$json = '[{"length":7533293969,"path":["Brotherhood.of.the.Wolf.2001.BluRay.1080p.x265.10bit.2Audio.mkv"]},{"length":958431,"path":["cover.jpg"]},{"length":760,"path":["Brotherhood.of.the.Wolf.2001.BluRay.1080p.x265.10bit.2Audio.nfo"]}]';
$curl->addFile('file', '1.json', $json, 'application/json');
$curl->upload('http://www.example.com/upload');
$response = $curl->response;
printf($response);

或使用参数,值将使用PHP_QUERY_RFC1738进行编码

use Ledc\Curl\Curl;
$curl = (new Curl())->get('http://www.example.com/search', [
    'q' => 'keyword',
]);

使用post的一个示例

use Ledc\Curl\Curl;
$curl = new Curl();
$curl->post('http://www.example.com/login/', [
    'username' => 'myusername',
    'password' => 'mypassword',
]);

使用基本认证的一个示例,移除默认用户代理并处理错误

use Ledc\Curl\Curl;
$curl = new 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验证设置

use Ledc\Curl\Curl;
$curl = new 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);

下载文件或其他内容的示例

use Ledc\Curl\Curl;
$curl = new 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);