Curl library to help you make advanced HTTP requests with PHP.
- PHP 7.4 or higher
- PHP Curl Extension
composer require initphp/curl
require_once "vendor/autoload.php";
use \InitPHP\Curl\Curl;
$curl = new Curl();
$curl->setUrl("https://example.com");
$curl->handler();
$res = $this->getResponse();
if(!empty($curl->getError())){
die($curl->getError());
}
echo $res['body'];
This library can be used as HTTP client for your API service. Example:
require_once "vendor/autoload.php";
use \InitPHP\Curl\Curl;
$curl = Curl::client('PUT', 'http://api.service.example.com/update/1')
$curl->setVersion("1.1") // HTTP Version
->setHeader("Content-Type", "application/json")
->setBody(json_encode([
'username' => 'admin',
'password' => '12345',
]))
->handler();
if(!empty($curl->getError())){
die($curl->getError());
}
switch ($curl->getResponse('code')) {
case 200 :
case 201 :
// Success
break;
case 404 :
// Not Found
break;
case 400:
// Badrequest
break;
// ...
}
Creates a new client object.
public static function client(string $method, string $url): \InitPHP\Curl\Curl;
Returns the result of the curl operation.
public function getResponse(null|string $key = null): null|mixed;
The values that can be used for the $key
parameter and its explanation are explained below.
NULL
: Returns an associative array containing all response information."status"
: Returns the status header information line of the HTTP response."code"
: Returns the HTTP response code."version"
: Returns HTTP response version information."headers"
: Returns the headers of the HTTP response as an array."body"
: Returns the body of the HTTP response.
Defines URL information for cURL.
public function setUrl(string $url): self
Throws \InvalidArgumentException
if it is not a valid URL.
Adds a header for the request.
public function setHeader(string $name, string $value): self
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl->setHeader('Content-type', 'application/json; charset=utf8');
For the request; Adds one or more headers via an associative array.
public function setHeaders(array $headers): self
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl->setHeaders([
'Content-type' => 'application/json; charset=utf8'
]);
Defines the HTTP Request method.
public function setMethod(string $method = 'GET'): self
The $method
parameter can take the following values;
- GET, POST, PUT, HEAD, DELETE, PATCH, OPTIONS
HTTP Request is used to manually define the content information.
public function setBody(string $body): self
Defines the HTTP version of the HTTP request.
public function setVersion(string $httpVersion = '1.1'): self
The $httpVersion
parameter can take the following values;
1.0
1.1
2.0
(libcurl v7.33 or higher version is required)
Defines the User Agent information to be reported to the server in the cURL process.
public function setUserAgent(null|string $userAgent = null): self
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl->setUserAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0");
Defines HTTP referer information to be reported to the server.
public function setReferer(null|string $referer = null): self
Defines whether requests follow redirects. If this method is not used, the redirects are not followed.
public function setAllowRedirect(int $maxRedirect = 3): self
Defines the wait limit for the request in seconds or milliseconds.
public function setTimeout(int $timeout = 0, bool $isMicrosecond = false): self
If $isMicrosecond
is FALSE, the value is used as seconds.
Defines a data to be sent as POST.
public function setField(string $key, string $value): self
It defines the data to be sent by POST with an associative array.
public function setFields(array $fields) : self
Defines the SSL configurations of the cURL request.
public function setSSL(int $host = 2, int $verify = 1, null|int $version = null): self
Defines the proxy to be used by cURL.
public function setProxy($proxy): self
It sends a file to be uploaded to the server.
public function setUpload(string $name, \CURLFile $file): self
Example (Single):
/** @var \InitPHP\Curl\Curl $curl */
$curl->setUpload("upload_file", new \CURLFile(__DIR__ . 'image.jpg')); // $_FILES["upload_file"]
Example (Multi):
/** @var \InitPHP\Curl\Curl $curl */
$curl->setUpload("upload_file[0]", new \CURLFile(__DIR__ . 'image-1.jpg'));
$curl->setUpload("upload_file[1]", new \CURLFile(__DIR__ . 'image-2.jpg'));
It is the curl_getinfo()
function in this library.
public function getInfo(null|string $key = null): null|mixed
It is the curl_error()
function in this library.
public function getError(): null|string
It is the curl_setopt()
function in this library.
public function setOpt(int $key, mixed $value): self
It is the curl_setopt_array()
function in this library.
public function setOptions(array $options): self
cURL starts and executes.
public function handler(): bool
After cURL is handled, it writes the content to the specified file.
public function save(string $filePath): false|int
Returns the number of bytes written on success.
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl = new \InitPHP\Curl\Curl();
$curl->setUrl("http://example.com")
->handler();
if($curl->save(__DIR__ . '/example.html') === FALSE){
echo "The file could not be written.";
}
Defines a cookie to be sent with cURL.
public function setCookie(string $name, string|int|float $value): self
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl->setCookie('username', 'admin') // $_COOKIE['username']
->setCookie('mail', 'admin@example.com'); // $_COOKIE['mail']
Defines cookies as multiple with an associative array.
public function setCookies(array $cookies): self
Example :
/** @var \InitPHP\Curl\Curl $curl */
$curl->setCookies([
'username' => 'admin', // $_COOKIE['username']
'mail' => 'admin@example.com' // $_COOKIE['mail']
]);
It tells the file path where the cookies values to be sent to the server will be kept or kept.
public function setCookieJarFile(string $filePath): self
If the specified file exists, cookies are read from the file and sent to the server. CURLOPT_COOKIEFILE
If the specified file does not exist, cookies from the server are written to the file. CURLOPT_COOKIEJAR
Example :
$login = new \InitPHP\Curl\Curl();
$login->setUrl("http://example.com/user/login")
->setField('username', 'admin')
->setField('password', '123456')
->setMethod('POST')
->setCookieJarFile(__DIR__ . '/session.txt')
->handler();
$dashboard = new \InitPHP\Curl\Curl();
$dashboard->setUrl("http://example.com/user/dashboard")
->setCookieJarFile(__DIR__ . '/session.txt')
->handler();
Copyright © 2022 MIT License