srvclick / scurl
简单的 PHP CURL 库
1.0.0.7
2024-09-19 05:10 UTC
Requires
- php: >=8.1
- ext-curl: *
- ext-json: *
- campo/random-user-agent: ^1.3
- ramsey/uuid: ^4.7.6
README
简单的 PHP CURL 库
安装
composer require srvclick/scurl
导入
use Srvclick\Scurl\Scurl_Request as SCURL;
示例
GET 请求
$curl = new SCURL; $curl->setUrl('https://example.com'); $response = $curl->Send(); echo $response->getBody();
POST 请求
$curl->setMethod("POST"); $curl->setParameters([ 'user' => 'user', 'password' => 'password', ]);
自定义方法
$curl->setConfigs([ 'custom_method' => 'PUT' ])
设置代理
无认证
$curl->setProxy([ 'proxy' => '127.0.0.1', 'proxy_port' => '9090' ]);
有认证
$curl->setProxy([ 'proxy' => '127.0.0.1', 'proxy_port' => '9090', 'proy_user' => 'root', 'proxy_pass' => 'toor' ]);
设置用户代理
选项 1
$curl->setConfigs([ 'user-agent' => 'Mozilla' ])
选项 2
$curl->setHeaders([ 'user-agent: Mozilla' ])
SSL 验证对方
$curl->setConfigs([ 'ssl_verifypeer' => 'false' ]);
使用Cookies
$curl->useCookie(true); $curl->setCookieName('Random Cookie Name');
下载文件
$curl->downloadFile("/path/","filename.ext");
拦截Cookies
$curl->setInterceptCookie(true); $responseCookies = $response->getResponseCoookies(); //Array
可用配置
$curl->setConfigs([ 'use_proxy' => true, 'max_redirs' => 10, 'timeout' => 30, 'http_version' => CURL_HTTP_VERSION_1_1, 'return_transfer' => true, 'ssl_verifypeer' => true, 'follow' => false, 'encondig' => "", 'user-agent' => 'SCURL by SrvClick', 'header' => [], 'http_auth' => true, 'http_user' => 'admin', 'http_pass' => 'admin' ]);
多CURL支持
$curl = new SCURL(); $curl->setMulticurl(); for ($i = 0; $i < 10; $i++) { $curl->MultiUrl('https://jsonplaceholder.typicode.com/todos/'.$i); $curl->downloadFile(__DIR__."/downloads/","item_".$i.".json"); } $response = $curl->Send(); for ($i = 0; $i < $response->getCount(); $i++) { echo "Peticion ".$i." Con HTTP STATUS ".$response->getStatus($i)."\n"; }
NIP支持
$curl->NipSetRange($core, $limit); $curl->NipMultiUrl('https://example.com/nip'); $curl->NipSetParams(function($nip){ return ['otp' => str_pad($nip ,4,0,STR_PAD_LEFT)]; //return '{"nip":"'.str_pad($nip ,4,0,STR_PAD_LEFT).'"}'; //Example 2 } $response = $curl->Send(); if($response->checkNip(function ($response) { $decode = json_decode($response,true); if ($decode['success'] == "yes") return true; return false; })){ echo "NIP: ".$response->getNip()."\n"; }else{ echo "Nip not found\n"; } );