Home  >  Article  >  Backend Development  >  Usage examples of php's curl encapsulation class_PHP tutorial

Usage examples of php's curl encapsulation class_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:14:51975browse

Usage examples of php's curl encapsulation class

Before using the function, we need to open the php curl module (libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll)

Steps to enable php curl function library

1). Remove the ;extension=php_curl.dll in the windows/php.ini file; /*Use echo phpinfo(); to view the path of php.ini*/
2). Copy php5/libeay32.dll and ssleay32.dll to the system directory windows/
3).Restart apache

The code is as follows:

The code is as follows:

include_once('curl.class.php');
$aa =new Curl('');
$curlOptions = array(
CURLOPT_URL => "http://www.xx.com/addTicket.jsp", //Access 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 parameters
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 class:

The code is as follows:

class Curl
{
public $cookieFile;
public $timeout = 160;
Public function __construct($dir){
$this->cookieFile = $this->getTemporaryCookieFileName($dir);
}
/**
* Set CURL parameters and send a request to get the response content
* @access private
* @param $curlOptions array curl setting parameter array
* @return string|false If the access is successful, the obtained information will be returned in string form; otherwise, false
*/
public function getResponseText($curlOptions) {
/* Set CURLOPT_RETURNTRANSFER to true */
if(!isset($curlOptions[CURLOPT_RETURNTRANSFER]) || $curlOptions[CURLOPT_RETURNTRANSFER] == false) {
$curlOptions[CURLOPT_RETURNTRANSFER] = true;
}
/* Initialize curl module */
$curl = curl_init();
/* Set curl options */
curl_setopt_array($curl, $curlOptions);
/* Send request and get 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;
}
/* Close curl module */
curl_close($curl);
/* Return results */
return $responseText;
}
/**
* Convert Unicode string (u0000) 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

The code is as follows:

//curl类
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;
        }
        //是否显示头部信息
        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);//设置curl超时秒数
        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;
    }
}
?>


用法

 

GET用法:

代码如下:

$curl = new Curl();
$curl->get('http://www.jb51.net/');


POST用法:

复制代码 代码如下:

$curl = new Curl();
$curl->get('http://www.jb51.net/', 'p=1&time=0′);

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/907710.htmlTechArticlephp的curl封装类用法实例 使用函数之前我们要需要把php curl模块打开(libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll) 开启php curl函数库的步骤 1).去...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn