Skip to content

Instantly share code, notes, and snippets.

@mokoshalb
Created December 15, 2020 12:39
Show Gist options
  • Save mokoshalb/3a5f318d152f39b3c16d5de88d087163 to your computer and use it in GitHub Desktop.
Save mokoshalb/3a5f318d152f39b3c16d5de88d087163 to your computer and use it in GitHub Desktop.
My Perfect cURL for PHP
<?php
//my perfect cURL in PHP
$proxies = array(); //Declaring an array to store the proxy list
//Adding list of proxies to the $proxies array
$proxies[] = 'user:password@173.234.11.134:54253'; //Some proxies require user, password, IP and port number
$proxies[] = '173.234.92.107'; //Some proxies only require IP
$proxies[] = '173.234.94.90:54253'; //Some proxies require IP and port number
//Choose a random proxy from our proxy list
if(isset($proxies)){
$proxy = $proxies[array_rand($proxies)]; //Select a random proxy from the array and assign to $proxy variable
}
$post_fields = array('id' => 1, 'name' => 'moko', 'status' => true);
$postvars = "";
foreach($post_fields as $key => $value) {
$postvars .= $key."=".$value."&";
}
$ch = curl_init(); //Initialise a cURL handle
if(isset($proxy)){
curl_setopt($ch, CURLOPT_PROXY, $proxy); //Set CURLOPT_PROXY with proxy in $proxy variable
}
// Set any other cURL options that are required
curl_setopt($ch, CURLOPT_HEADER, FALSE); //Set Header if available
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //Disable verifying of SSL certificate
curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE); //Enable cookie session
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); //Follow any redirect from the URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE; //Give us a feedback from the URL accessed
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); //Similar to the SSL rule above
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //Time limit of loading, shut it down if it exceeds
curl_setopt($ch, CURLOPT_POST, TRUE); //Use HTTP Post method, False for GET
curl_setopt($ch, CURLOPT_REFERER, "https://google.com/"); //Provide referrer URL, must be string
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64; rv:2.2a1pre) Gecko/20110324 Firefox/4.2a1pre");
curl_setopt($ch, CURLOPT_VERBOSE, 0); //Turn verbose off
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars); //Post values
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch); //Execute a cURL request
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment