Home > Backend Development > PHP Tutorial > Usage examples of php's curl encapsulation class, phpcurl encapsulation examples_PHP tutorial

Usage examples of php's curl encapsulation class, phpcurl encapsulation examples_PHP tutorial

WBOY
Release: 2016-07-13 10:14:47
Original
803 people have browsed it

php curl encapsulation class usage example, phpcurl encapsulation example

The examples in this article describe two usage examples of the php curl encapsulation class. These two functions allow us to use php curl related functions very conveniently. Share it with everyone 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)

Steps to enable php curl function library

1). Remove the ;extension=php_curl.dll in the windows/php.ini file; /*Use echo phpinfo(); to check 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:

Copy code 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:
Copy code 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

Copy code 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.bkjia.com/');

POST用法:
复制代码 代码如下:
$curl = new Curl();
$curl->get('http://www.bkjia.com/', 'p=1&time=0′);

希望本文所述对大家的PHP程序设计有所帮助。

php使用curl抓取一个网站的内容被拒绝

刚写的。希望有用
>
 

php curl 封装成函数问题

The reason is that the variable name is written incorrectly. Variable name ② is equal to variable name ③ but not equal to variable name ①. Remember to adopt it!
$output ①= curl_exec($ch); //Return results;
curl_close($ch); //Close communication;
if($output==''){
$outptu② = 3;
}
$dataapi = $outptu③;
return $dataapi;
}

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/907838.htmlTechArticlephp curl encapsulation class usage examples, phpcurl encapsulation examples This article describes two php curl encapsulation class usage examples , these two functions make it very convenient for us to use php curl related...
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template