This is a Full parted example of PHP cURL library libcurl
.
Initiate cURL instance and set Request method
The default cURL
request method is GET
request, so URL Parameters
can be inclusiding normally into the URL: https://example.com/?q=value&u=value2
. but to set cURL
option using `curl_setopt` method to use POST
request..
for example we need to submit a login Form using cURL
.
// Start new instance of cURL library. $curl = curl_init(); // Set request to POST type and set the request parameters $postvars= 'passwdfieldname=password&usernamefieldname=username'; curl_setopt($curl , CURLOPT_POST, true); curl_setopt($curl , CURLOPT_POSTFIELDS, $postvars); // Handle and set COOKIES // you can set a full path for cookies file. curl_setopt ($curl, CURLOPT_COOKIEJAR, 'cookie.txt'); // Send the COOKIES curl_setopt ($curl, CURLOPT_COOKIEFILE, 'cookie.txt'); // Follow location after the POST Submitted curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
Set cURL USER-AGENT target a URL
// Set URL to POST form, Login form or any. curl_setopt($curl, CURLOPT_URL, 'https://www.example.com/Login.php'); // Set USER-AGENT $agentstring = "Mozilla/5.0 (iPhone; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.25 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"; curl_setopt($curl, CURLOPT_USERAGENT, $agentstring);
Skip cURL SSL Verifications
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
cURL Authontication
// Set your login and password for authentication curl_setopt($curl, CURLOPT_USERPWD, 'login:pasword'); // You can use CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, // CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE // // You can use the bitwise | (or) operator to combine more than one method. // If you do this, CURL will poll the server to see what methods it supports and pick the best one. // // CURLAUTH_ANY is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | // CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM // // CURLAUTH_ANYSAFE is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | // CURLAUTH_NTLM // // CURLAUTH_ANY is prefered as it covers all bases curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); // this example source found in this url
Tunning Connection
// Use Proxy. curl_setopt($curl, CURLOPT_PROXY, '192.168.1.10:8080'); // Set timeout on connect in sec. curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); // Set timeout on response in sec. curl_setopt($curl, CURLOPT_TIMEOUT, 30); // Return transfer output in a string format. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // Follow this amount of redirects curl_setopt($curl, CURLOPT_MAXREDIRS, 3); // Set The referer URL curl_setopt($curl, CURLOPT_REFERER,'http://example.com/aboutme.html'); // Set Auto referer. curl_setopt($curl,CURLOPT_AUTOREFERER,true);
Send request,Get output, and Close the Connection
// Send the request & save response to $response $response = curl_exec($curl); // Continue transfer if needed ie.. Download a file, and execute the second request. curl_setopt($curl, CURLOPT_URL, 'https://www.example.com/file.pdf'); $content = curl_exec ($curl); // Close connection and cURL session curl_close($curl);
Read more for curl_setopt
at https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
Hope that helps some bodies.
Thanks.