ledc / curl
基于Curl的请求类库
v8.1.0
2024-03-29 00:40 UTC
Requires
- php: >=8.1
- ext-curl: *
README
此库提供了一个面向对象且无依赖的PHP cURL扩展包装器。
如果您在安装或使用过程中有任何问题或问题,请创建一个问题。
安装
要通过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);