`
shake863
  • 浏览: 637409 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

curl 表单的封装

    博客分类:
  • php
阅读更多

最近项目负责人要求调接口必须用curl,这不,写一个个把

<?php
/**
 * Copyright (c) 2008, ***研发中心
 * All rights reserved.
 * 
 * 名    称:
 * 摘    要:
 * 版    本:1.0
 * @author ***
 * @since 09.01.08 01:00:14
 */


/**
 * class CCurl
 */

class CCurl {
    
    protected
        $url="",
        $postfields=array();
    
    private
        $hd=null,
        $options = array(),
        $timeout = 5;
    
    /**
     * CCurl  类构造函数
     * @param
    */
    public function __construct($url="") {
        $this->initialize($url);
    }
    
    public function __destruct(){
        curl_close($this->hd);
    }
    
    /**
     * function 初始化函数
     * @ps      
     * @param $url:str 访问的url
     * @return 
     */
    public function initialize($url)
    {
        $this->url = $url;
        if($url)
            $this->hd = curl_init($url);
        else
            $this->hd = curl_init();
    }
    
    /**
     * function 设置url
     * @ps      
     * @param 
     * @return 
     */
    public function setUrl($url)
    {
        self::setOption(CURLOPT_URL,$url);
    }
    
    /**
     * function set option操作
     * @ps      原始的封装
     * @param $optk:option curl的option
     * @param $optv:mixed 设定值
     * @return Boolean
     */
    public function setOption($optk,$optv)
    {
        $this->options[$optk] = $optv;
    }
    
    /**
     * function 上传文件
     * @ps      
     * @param 
     * @return 
     */
    public function setFile($fieldname ,$file)
    {
        $this->postfields[$fieldname] = "@$file";
    }
    
    /**
     * function post数据
     * @ps      
     * @param 
     * @return 
     */
    public function setPost($fieldname ,$post)
    {
        $this->postfields[$fieldname] = $post;
    }
    
    /**
     * function get结果
     * @ps      
     * @param 
     * @return 
     */
    public function getResult()
    {
        $this->options[CURLOPT_RETURNTRANSFER] = true;
        $this->options[CURLOPT_TIMEOUT] = $this->timeout;
        
        if($this->postfields)
        {
            self::setOption(CURLOPT_POST,true);
            self::setOption(CURLOPT_POSTFIELDS,$this->postfields);
        }
        curl_setopt_array($this->hd, $this->options);
        return curl_exec($this->hd);
    }
    
    
}

$test = new CCurl("localhost/test.php?dede=asdf");
$test->setUrl("localhost/test.php?dede=1111");
$test->setFile("dll","c:/gdiplus.dll");
$test->setPost("test","asdf");
echo $test->getResult();
?>
 

 

1
0
分享到:
评论

相关推荐

    CURL C++封装

    CURL C++封装,功能包括:HTTP\HTTPS、POST、GET、表单提交、文件下载、UTF-8转码、说明文档

    CUrlHttp封装curl类

    CUrlHttp类是根据curl库提供的接口。支持get、post、表单提交方式请求

    CURL HTTP POST方式表单递交

    1、使用的是curl库,数据采用http post方式表单递交 2、里面有完整的注释,比较规则的代码结构,适合学习交流 3、是控制台程序 4、我也是用到了curl但网上的资料大部分比较松散,我自己实现后分享给大家,相互学习,...

    C++ curl封装类

    对libcurl进行的封装,非常好用

    php的curl封装类用法实例.zip

    curl的一些封装用法,简单易懂

    php实现的Curl封装类.zip

    主要介绍了php实现的Curl封装类的用法,以完整实例形式较为详细的分析了Curl封装类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。如果朋友们有什么更好的类,可以发送到我们PHP中文网一起学习...

    PHP封装CURL扩展类

    主要介绍了PHP封装CURL扩展类,实例分析了基于curl发送post、get请求及操作cookie等相关技巧 编码规范 * @class 类名首字母大写,类名为多个单词, 每个大字首字母大写 eg: class Curl , class CurlPage * @variable...

    PHP curl 封装

    PHP 通用curl简单封装,可以获取header,灵活配置

    php实现的Curl封装类

    php实现的Curl封装类的用法,以完整实例形式较为详细的分析了Curl封装类的定义及相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

    关于curl简单操作封装类

    实现了curl常用的post请求,上传,获取验证码,下载图片操作的封装

    php curl模仿form表单提交图片或文件

    php curl模仿form表单提交图片或文件 用的tp5做的例子

    curl 封装的类库

    项目中自己使用的时候,自己封装的类库,请大家多多指教

    php的curl封装类

    一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。

    一个非常好用的curl封装类

    如果你对curl不熟悉,如果你想要了解curl,这个类你值得拥有,常用的方法已经封装好。

    PHP封装CURL扩展类.zip

    PHP封装CURL的扩展类

    php的curl封装类.zip

    一个php的curl封装类,基础发起curl请求函数,来源一定要设置成来自本站,要求结果为字符串且输出到屏幕上,发起get请求,发起post请求,处理发起非get请求的传输数据,发起put请求,发起delete请求。

    http类库:基于php curl库封装的http类库.zip

    php-httplib是一个基于php curl库封装的http类库,简单易用的同时兼顾性能及功能,可完美解决您的web请求需求!

    php的curl二次封装的类.zip

    关于php的curl二次封装的类,免费下载

    c++封装curl,实现get,post,download

    c++封装了curl的get,post,download

    CURLget|post请求封装

    调用微信公众平台接口 需要用到CURL(相当于ajax) 访问接口返回数据 页面不刷新 此文件封装了调用curl执行get|post请求 返回相应的数据

Global site tag (gtag.js) - Google Analytics