Example of curl encapsulation class usage for php
- 2021-07-26 07:16:22
- OfStack
This article describes two examples of php curl encapsulation class usage, these two functions can make us very convenient to use php curl related functions. Share it for your reference. The details are as follows:
Before using the function, we need to open the php curl module (libeay32.dll, ssleay32.dll, php5ts.dll, php_curl. dll)
To open the php curl function library
1) Remove the file windows/php. ini; extension=php_curl. dll preceding; /* Use echo phpinfo (); View the path to php. ini */
2) Copy php5/libeay32. dll, ssleay32. dll to the system directory under windows/
3) Restart apache
The code is as follows:
<?php
include_once('curl.class.php');
$aa =new Curl('');
$curlOptions = array(
CURLOPT_URL => "http://www.xx.com/addTicket.jsp", // Visit URL
CURLOPT_RETURNTRANSFER => true, // Get the result and return it as a string
CURLOPT_REFERER => "ww.ww.ww/zw2",
CURLOPT_HTTPHEADER => array('X-FORWARDED-FOR:139.197.14.19', 'CLIENT-IP:127.0.0.1','Proxy-Client-IP:139.197.14.19','WL-Proxy-Client-IP:139.197.14.19' ),
CURLOPT_HEADER => 1, // Get the return header information
//CURLOPT_SSL_VERIFYPEER => false, // Support SSL Encryption
CURLOPT_POST => true, // Send with POST Parameter
CURLOPT_POSTFIELDS => 'ids=897&Submit=%E6%8A%95%E7%A5%A8', // Requested POST Parameter string
CURLOPT_TIMEOUT => $aa->timeout // Time to wait for response
);
echo $aa->getResponseText($curlOptions);
cul processing classes:
<?php
class Curl
{
public $cookieFile;
public $timeout = 160;
Public function __construct($dir){
$this->cookieFile = $this->getTemporaryCookieFileName($dir);
}
/**
* Settings CURL Parameter and send a request to get the response content
* @access private
* @param $curlOptions array curl Setting Array of Parameters
* @return string|false If the access is successful, return the obtained information in the form of string; Otherwise return false
*/
public function getResponseText($curlOptions) {
/* Settings CURLOPT_RETURNTRANSFER For true */
if(!isset($curlOptions[CURLOPT_RETURNTRANSFER]) || $curlOptions[CURLOPT_RETURNTRANSFER] == false) {
$curlOptions[CURLOPT_RETURNTRANSFER] = true;
}
/* Initialization curl Module */
$curl = curl_init();
/* Settings curl Options */
curl_setopt_array($curl, $curlOptions);
/* Send the request and get the response information */
$responseText = '';
try {
$responseText = curl_exec($curl);
if(($errno = curl_errno($curl)) != CURLM_OK) {
$errmsg = curl_error($curl);
throw new Exception($errmsg, $errno);
}
} catch (Exception $e) {
//exceptionDisposeFunction($e);
//print_r($e);
$responseText = false;
}
/* Shut down curl Module */
curl_close($curl);
/* Return results */
return $responseText;
}
/**
* Will Unicode String (u0000) Convert to utf-8 String, tool function
* @access private
* @static
* @param $string string Unicode String
* @return string utf-8 String
*/
public function unicodeToUtf8($string) {
$string = str_replace('u', '', strtolower($string));
$length = strlen($string) / 4;
$stringResult = '';
for($i = 0; $i < $length; $i++) {
$charUnicodeHex = substr($string, $i * 4, 4);
$unicodeCode = hexdec($charUnicodeHex);
$utf8Code = '';
if($unicodeCode < 128) {
$utf8Code = chr($unicodeCode);
} else if($unicodeCode < 2048) {
$utf8Code .= chr(192 + (($unicodeCode - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 + ($unicodeCode % 64));
} else {
$utf8Code .= chr(224 + (($unicodeCode - ($unicodeCode % 4096)) / 4096));
$utf8Code .= chr(128 + ((($unicodeCode % 4096) - ($unicodeCode % 64)) / 64));
$utf8Code .= chr(128 + ($unicodeCode % 64));
}
$stringResult .= $utf8Code;
}
return $stringResult;
}
private function getTemporaryCookieFileName($dir='.') {
return (str_replace("", '/', tempnam($dir, 'tmp')));
}
}
Example 2
<?php
//curl Class
class Curl
{
function Curl(){
return true;
}
function execute($method, $url, $fields='', $userAgent='', $httpHeaders='', $username='', $password=''){
$ch = Curl::create();
if(false === $ch){
return false;
}
if(is_string($url) && strlen($url)){
$ret = curl_setopt($ch, CURLOPT_URL, $url);
}else{
return false;
}
// Whether to display header information
curl_setopt($ch, CURLOPT_HEADER, false);
//
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if($username != ''){
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
}
$method = strtolower($method);
if('post' == $method){
curl_setopt($ch, CURLOPT_POST, true);
if(is_array($fields)){
$sets = array();
foreach ($fields AS $key => $val){
$sets[] = $key . '=' . urlencode($val);
}
$fields = implode('&',$sets);
}
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
}else if('put' == $method){
curl_setopt($ch, CURLOPT_PUT, true);
}
//curl_setopt($ch, CURLOPT_PROGRESS, true);
//curl_setopt($ch, CURLOPT_VERBOSE, true);
//curl_setopt($ch, CURLOPT_MUTE, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);// Settings curl Timeout seconds
if(strlen($userAgent)){
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
}
if(is_array($httpHeaders)){
curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeaders);
}
$ret = curl_exec($ch);
if(curl_errno($ch)){
curl_close($ch);
return array(curl_error($ch), curl_errno($ch));
}else{
curl_close($ch);
if(!is_string($ret) || !strlen($ret)){
return false;
}
return $ret;
}
}
function post($url, $fields, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
$ret = Curl::execute('POST', $url, $fields, $userAgent, $httpHeaders, $username, $password);
if(false === $ret){
return false;
}
if(is_array($ret)){
return false;
}
return $ret;
}
function get($url, $userAgent = '', $httpHeaders = '', $username = '', $password = ''){
$ret = Curl::execute('GET', $url, '', $userAgent, $httpHeaders, $username, $password);
if(false === $ret){
return false;
}
if(is_array($ret)){
return false;
}
return $ret;
}
function create(){
$ch = null;
if(!function_exists('curl_init')){
return false;
}
$ch = curl_init();
if(!is_resource($ch)){
return false;
}
return $ch;
}
}
?>
Usage
GET Usage:
$curl = new Curl();
$curl->get('https://www.ofstack.com/');
POST Usage:
$curl = new Curl();
$curl->get('https://www.ofstack.com/', 'p=1&time=0 ' );
I hope this article is helpful to everyone's PHP programming.