PHP CURL封装类代码一例

发布时间:2019-09-09编辑:脚本学堂
分享一例php实现的curl封装类代码,学习下php中curl操作的方法,便于掌握php中常用的curl函数,有需要的朋友参考下吧。

本节内容:
PHP CURL封装类

例子:
 

复制代码 代码示例:
<?php
/**
* CURL封装类
* by www.jb200.com
*/
class Curl_Class 

    function Curl_Class() 
    { 
        return true; 
    } 
 
    function execute($method, $url, $fields = '', $userAgent = '', $httpHeaders = '', $username = '', $password = '') 
    { 
        $ch = Curl_Class::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, 3);//设置curl超时秒数,例如将信息POST出去3秒钟后自动结束运行。 
 
        if (strlen($userAgent)) 
        { 
            curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
        } 
 
        if (is_array($httpHeaders)) 
        {  // www.jb200.com
            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_Class::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_Class::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; 
    }

您可能感兴趣的文章:
php curl模拟post请求的例子
php curl模块的用法举例
PHP添加CURL扩展库的二种方法
php curl超时设置详解
php CURL模拟cookie登录的代码
php curl上传文件的简单例子
php curl实现get,post和cookie的实例代码
php中开启curl扩展的方法详解
php curl post的简单示例
php curl错误代码列表(收集)
php curl用法的实例代码
php curl中post与get应用实例代码
php中通过curl smtp发送邮件的例子
PHP中用CURL伪造IP来源的方法
php使用curl伪造IP来源的代码
php curl 学习总结