cURL is a php library and stands for the client Url, with the help of cURL we can send files and download data over http and ftp requests. cURL also has a command line tool so we can also in command line.
cURL is very helpful for calling rest full API’s. In API, we can set post params, headers, cookies, and so we can set header token with SSL connection.
Let see how can we use cURL
Before this, we need to check cURL should be enable.
// check cURL is here print_r(get_loaded_extensions());
// create a new cURL resource
$curl = curl_init();
if (!$curl) {
die("Couldn't initialize a cURL handle");
}
// Set the file URL to fetch through cURL
curl_setopt($curl, CURLOPT_URL, "https://phpguruji.com/");
// Set a different user agent string
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
// Follow redirects, if any
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
// Fail the cURL request if response code = 400 (like 404 errors)
curl_setopt($curl, CURLOPT_FAILONERROR, true);
// Return the actual result of the curl result instead of success code
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// execute time to wait for 10 seconds to connect, set 0 to wait indefinitely
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
// set request timeout for a maximum of 50 seconds
curl_setopt($curl, CURLOPT_TIMEOUT, 50);
// check the SSL certificates off
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// Now execute our url and hold return html in $html
$html = curl_exec($curl);
// Check if any error has occurred
if (curl_errno($curl))
{
echo 'cURL error: ' . curl_error($curl);
}
else
{
// cURL successfully executed
print_r(curl_getinfo($curl));
}
// close destroy cURL resource from memory
curl_close($curl);
// cURL with Post request and headers
function curlPost($url, $data=NULL, $headers = NULL) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(!empty($data)){
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
if (!empty($headers)) {
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
}
$res = curl_exec($ch);
if (curl_error($ch)) {
trigger_error('Curl Error:' . curl_error($ch));
}
curl_close($ch);
return $res;
}
$post_data = [
'username' => 'admin',
'password' => '12345',
];
$token = 'asdasdasdasdsadas'; //token
$headers = [
'Content-Type: application/json', // for define content type that is json
'bearer: '.$token, // send token in header request
'Content-length: 100' // content length for example 100 characters
];
curlPost('https://phpguruji.com', $post_data, $headers); // call function
