`
shake863
  • 浏览: 664603 次
  • 性别: 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
分享到:
评论

相关推荐

    CUrlHttp封装curl类

    CUrlHttp封装curl类是一个基于curl库的PHP类,它为开发者提供了更加便捷的方式来执行HTTP请求,如GET、POST以及表单提交等操作。curl库是一个强大的URL传输库,广泛应用于各种网络请求任务,包括文件上传下载、网页...

    CURL C++封装

    在C++环境中对CURL进行封装,可以方便地在C++程序中实现网络通信功能,比如数据的获取、提交以及文件的上传和下载。本篇文章将深入探讨如何在C++中封装CURL,以及它所涵盖的关键知识点。 首先,我们需要了解CURL的...

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

    TP5的`curl`方法封装了cURL操作,使得文件上传更加方便。以下是一个使用TP5的示例: ```php $data = [ 'file' =&gt; '@'.realpath('path/to/your/file.jpg'), ]; $result = \think\facade\Http::post('...

    php的curl二次封装的类.zip

    4. **数据发送**:对于POST请求,封装类通常会有一个方法来处理POST数据,可以接受一个关联数组,自动转换为HTTP表单格式。对于JSON或XML等数据,可能会有额外的方法来设置请求头中的Content-Type。 5. **执行请求*...

    cURL封装类(Wrapper class for cURL)

    **cURL封装类详解** 在Web开发中,cURL库是一个强大的工具,它允许开发者通过命令行接口或者在编程语言中进行HTTP和其他网络协议的传输。对于PHP开发者来说,使用cURL封装类能够极大地简化与远程API交互的过程,...

    php的curl封装类用法实例

    使用这些封装类,你可以更轻松地进行网络请求,比如模拟登录、抓取网页内容、提交表单等操作。同时,它们还提供了一种方式来处理异常和错误,使得代码更加健壮。 在实际开发中,你还可以根据需求扩展这两个类,添加...

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

    在PHP开发中,HTTP通信是不可或缺的一部分,而`php-httplib`是一个为开发者提供便利的工具,它基于PHP的cURL库进行了封装,旨在简化HTTP请求操作,提高开发效率。下面将详细介绍这个类库的核心功能、使用方法以及其...

    php的curl封装类用法实例_.docx

    为了简化cURL的使用流程,通常会将其功能封装成一个类,便于复用和维护。本文将通过分析提供的文件内容来详细介绍如何在PHP中使用cURL封装类。 #### 二、cURL模块启用与配置 首先,确保服务器已正确安装并启用了...

    WWW-Curl-4.17.tar_curl_www_www-curl_Perl_

    总结,`WWW-Curl-4.17.tar` 提供了一个方便的 Perl 模块,它封装了强大的 `curl` 功能,使 Perl 开发者能够轻松处理网络请求。无论是简单的数据获取还是复杂的网络交互,`WWW::Curl` 都能提供必要的支持。

    java通过jni调用libcurl,curl java

    libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同...PHP自带curl扩展,但java没有curl扩展,这个工程的目的,就是将libcurl进行封装,以jni的方式进行调用

    用curl做http post

    POST请求常用于向服务器发送数据,例如在网页表单提交时,用户填写的信息会被封装到请求体中发送到服务器。与GET请求不同,POST请求的数据不会显示在URL上,而是隐藏在请求体中,这使得POST请求更适合传输敏感信息。...

    php的curl整合类.zip

    这个"php的curl整合类.zip"文件提供了一个封装好的PHP类,使得开发者可以更方便地利用cURL功能,模拟各种浏览器行为,执行自动化网站操作。下面将详细阐述cURL库的原理以及如何使用这个整合类。 1. **cURL库介绍** ...

    c++封装好的支持Http/https类,包含dll/lib

    GET通常用于获取资源,而POST则常用于向服务器发送数据,如表单提交。这个库的封装使得开发者可以直接调用预定义的函数,而无需关心底层网络通信的细节。 "支持下载和上传文件功能"进一步扩展了这个库的能力。文件...

    通过curl模拟post和get方式提交的表单类

    `getLastError`方法通过`curl_errno($this-&gt;_ch)`和`curl_error($this-&gt;_ch)`来获取curl执行时的错误号和错误信息,并将它们封装成一个数组返回。这可以帮助开发者在使用curl进行Web请求时,快速定位和诊断可能出现...

    php的curl登录采集的类.zip

    在给定的"php的curl登录采集的类.zip"文件中,我们可以找到一个已经封装好的PHP类,用于简化这个过程。 首先,我们来看一下`curl`函数在PHP中的应用。cURL(Client URL Library)是用于处理URLs的库,它支持多种...

    PHPCurl操作类是一个对Curl库的常用操作进行高度封装的操作对象工具类.rar

    我们可以使用cURL通过我们的服务器去获取其他服务器的数据,比如气象局服务器的天气预报数据、比特币交易所的交易记录数据等。 在PHP中使用cURL,需要开启curl扩展 (1) 在php.ini里面开启curl这个扩展 (2) 将...

    PHP CURL 新浪好友邀请邮箱登录

    2. **构造POST数据**:使用cURL,我们可以通过`curl_setopt()`设置`CURLOPT_POSTFIELDS`参数来传递POST数据。将用户名和密码封装为键值对,如`'username=' . urlencode($username) . '&password=' . urlencode($...

    CURL写的一个类,可用于数据采集并实现编码转换~!

    而这里的"一个CURL写的类"则是将CURL的功能封装成一个面向对象的PHP类,方便开发者进行数据采集和编码转换操作。下面我们将详细讨论这个类的可能实现和相关知识点。 首先,`Once`方法代表单个网站信息采集。在数据...

    Curl实现Get下载zip文件、post上传zip文件、普通post请求等

    同时,为了使代码更易于管理和复用,可以封装成函数或者类,比如创建一个`CurlHelper`类,包含`downloadFile()`, `uploadFile()`, `postDataAndGetJson()`等方法。 最后,压缩包中的`ModelShell`可能是项目中的一个...

    curl命令详解使用文档

    它利用libcurl库实现,这个库在C程序中常用于处理HTTP请求,而`curlpp`是libcurl的C++封装,适用于网页抓取、网络监控等开发场景。`curl`命令可以帮助解决开发过程中遇到的问题。 ### 常用参数 - `-b / --cookie ...

Global site tag (gtag.js) - Google Analytics