本节内容:
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 学习总结