Setting custom HTTP Headers with cURL is a subsidiary when transmuting Utilizer Agent or Cookies. Headers can be transmuted two ways, both utilizing the curl_setopt function.
Controlling the cURL headers is done utilizing the CURLOPT_HTTPHEADER option. This can be utilizable if you optate to set custom request headers when performing a HTTP request through cURL in PHP.
The CURLOPT_HTTPHEADER option is used with the curl_setopt function. For example, to add headers to a request, we simply place them in an Array, which can then be passed to the cul_setopt function.
To change the User-Agent and Accept headers, we can simply do like shown below:
$User_Agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';
$request_headers = array();
$request_headers[] = 'User-Agent: '. $User_Agent;
$request_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
After having included all the request headers that you want, you need to pass on the Array to the curl_setopt function. Your request can then be carried out by calling curl_exec().
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
A complete version of the above can look like this:
$url = "https://laravelcode.com/";
// Setting the HTTP Request Headers
$User_Agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';
$request_headers = array();
$request_headers[] = 'User-Agent: '. $User_Agent;
$request_headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
// Performing the HTTP request
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$response_body = curl_exec($ch); // Performs the Request, with specified curl_setopt() options (if any).
The $response_body variable contains the response body, you can try to output it directly to the browser with echo, just be sure to match the mime-type of the resource (I.e. text/html).
When Cookies are used by a website, a client will include them in the headers of its requests. So, to make cookies available to a website when visiting the site with cURL, we add them to a "Cookie" field.
The cookie field contains all cookies for a site, so if there is more than one cookie, they should be separated by a semicolon (;).
$cookies = 'CookieName1=Value;CookieName2=Value';
$request_headers[] = 'Cookie: '. $cookies;
Note. Cookie Names must be unique.
Alternatively, some headers can also be set with dedicated options in the curl_setopt function. Both the User-agent and Cookie headers can be set using the CURLOPT_USERAGENT and CURLOPT_COOKIE options respectively. This may be easier than adding the each header field manually.
If we have both a cookie and a user-agent string stored in variables, as shown below:
$User_Agent = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31';
$cookies = 'CookieName1=Value;CookieName2=Value';
We can simply feed them directly via curl_setopt:
curl_setopt($ch, CURLOPT_USERAGENT, $User_Agent);
curl_setopt($ch, CURLOPT_COOKIE, $cookies);
Compared to using an Array, this may be easier. However, which method you choose to use, is mostly down to your own personal preferences.
Hi, My name is Harsukh Makwana. i have been work with many programming language like php, python, javascript, node, react, anguler, etc.. since last 5 year. if you have any issue or want me hire then contact me on [email protected]
Laravel Eloquent Has Many Through Relationship Tutorial with Example
Laravel provides eloquent relationship w...Install software or upgrade from an old unsupported release
If you have old computers, then it is go...Page Scroll Progress Bar with Web in React
Do you want to display a progress bar on...How to check if variable is string in PHP
PHP is simple programming method by whic...10 basic commands that every regular Linux users need to know Part 2
In the previous article, we have di...