<?php
class Curl {
/*
* Get access to the specified address
* @param string url Address to access
* @param string cookie storage address, if no cookie is sent
* @return string curl_exec() information obtained
* @author andy
**/
public function get( $url, $cookie='' )
{
// Initialize a cURL session
$curl = curl_init($url);
// The header information is not displayed
curl_setopt($curl, CURLOPT_HEADER, 0);
// Return the information obtained by curl_exec() as a file stream instead of directly outputting it.
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Use automatic jump
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
if(!empty($cookie)) {
// The file name containing cookie data. The format of the cookie file can be in Netscape format, or just plain HTTP header information is stored in the file.
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie);
}
// Automatically set Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// Execute a curl session
$tmp = curl_exec($curl);
// Close curl session
curl_close($curl);
return $tmp;
}
/*
* Post mode simulates the request specified address
* @param string url The specified address for the request
* @param array params The requested
* #patam string cookie storage address
* @return string curl_exec() information obtained
* @author andy
**/
public function post( $url, $params, $cookie )
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
// Check the source of the certification certificate, 0 means to prevent the check of the legality of the certificate.
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// Check whether the SSL encryption algorithm exists from the certificate
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1);
//Simulate the browser used by the user and include a string with the "user-agent" header in the HTTP request.
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
//Send a regular POST request, type: application/x-www-form-urlencoded, just like a form submitted.
curl_setopt($curl, CURLOPT_POST, 1);
// Return the information obtained by curl_exec() as a file stream instead of directly outputting it.
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Use automatic jump
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
// Automatically set Referer
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
// Cookie address
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie);
// All data is sent using the "POST" operation in the HTTP protocol. To send a file,
// Prefix the file name with @ and use the full path. This parameter can be passed through the urlencoded string
// Similar to 'para1=val1¶2=val2&...' or use an array with the field name as the key value and the field data as the value
// If the value is an array, the Content-Type header will be set to multipart/form-data.
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
$result = curl_exec($curl);
curl_close($curl);
return $result;
}
/**
* Remote download
* @param string $remote Remote image address
* @param string $local locally saved address
* @param string $cookie cookie address Optional parameters are
* Cookies are required for some websites to download pictures on the website
* So you need to add cookies
* @return void
* @author andy
*/
public function reutersload($remote, $local, $cookie= '') {
$cp = curl_init($remote);
$fp = fopen($local,"w");
curl_setopt($cp, CURLOPT_FILE, $fp);
curl_setopt($cp, CURLOPT_HEADER, 0);
if($cookie != '') {
curl_setopt($cp, CURLOPT_COOKIEFILE, $cookie);
}
curl_exec($cp);
curl_close($cp);
fclose($fp);
}
}