srvclick/scurl

简单的 PHP CURL 库

1.0.0.7 2024-09-19 05:10 UTC

This package is auto-updated.

Last update: 2024-09-30 05:03:46 UTC


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";
}
);