一个基础的CURL类

/**
 * 一个基础的CURL类
 *
 * @author Smala
 */
    class curl{
        public $ch;
        public $cookie = ‘/cookie‘;
        public $rstr;
        public $info;                                

        public function __construct($ssl=true,$cookieName="tmp.cookie"){

            $this -> cookie = dirname(__FILE__)."/".$cookieName;
            $this -> ch = curl_init();
            curl_setopt($this -> ch ,CURLOPT_USERAGENT,‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36‘);//设置用户代理
            curl_setopt($this -> ch,CURLOPT_COOKIEJAR,$this -> cookie);
            curl_setopt($this -> ch,CURLOPT_COOKIEFILE,$this -> cookie);    

            if($ssl){
                curl_setopt($this -> ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($this -> ch, CURLOPT_SSL_VERIFYHOST, false);
            }
            curl_setopt($this -> ch,CURLOPT_RETURNTRANSFER,1);
        }

        public function set($opt){
            foreach($opt as $key => $value)
            curl_setopt($this -> ch,$key,$value);
            return $this;
        }
        public function get($url,$data=array()){
            $queryString = http_build_query($data);
            if(!empty($queryString)){
                $url.= ‘?‘.$queryString;
            }
            curl_setopt($this -> ch,CURLOPT_URL,$url);
            return $this;

        }
        public function setHeader($data=array()){
            curl_setopt($this -> ch,CURLOPT_HTTPHEADER,$data);
            return $this;
        }
        public function post($url,$data = array()){
            $post = ‘‘;
            foreach($data as $key=>$value){
                $post .= $key.‘=‘.$value."&";

            }
            $post = trim($post,‘&‘);
            curl_setopt($this -> ch,CURLOPT_URL,$url);
            curl_setopt($this -> ch,CURLOPT_POST,1);
            curl_setopt($this -> ch,CURLOPT_POSTFIELDS,$post);
            return $this;
        }
        public function execute($close=true){

            $this -> rstr = curl_exec($this -> ch);
            $this -> info = curl_getinfo($this -> ch);
            if($close){
               // curl_close($this -> ch);
            }
            return $this -> rstr;

        }
        public function close(){
            curl_close($this -> ch);
        }

    }
时间: 2024-10-23 05:18:38

一个基础的CURL类的相关文章

Android基础之——CountDownTimer类,轻松实现倒计时功能

在发现这个类之前,一直是用的handler,子线程发消息,UI线程进行倒计时的显示工作.前几天在做一个倒计时显示的时候发现了这个类,用起来很方便 翻看了下源码,内部已经帮我们实现了handler的子线程操作 CountDownTimer这个类用起来很简单,两个参数,几句代码搞定,如下: CountDownTimer(long millisInFuture, long countDownInterval) 构造函数有两个参数,第一个millisInFuture是指要倒计时的总时间,单位是long

如何在ASP.NET Core中实现一个基础的身份认证

注:本文提到的代码示例下载地址> How to achieve a basic authorization in ASP.NET Core 如何在ASP.NET Core中实现一个基础的身份认证 ASP.NET终于可以跨平台了,但是不是我们常用的ASP.NET, 而是叫一个ASP.NET Core的新平台,他可以跨Windows, Linux, OS X等平台来部署你的web应用程序,你可以理解为,这个框架就是ASP.NET的下一个版本,相对于传统ASP.NET程序,它还是有一些不同的地方的,比

好用的curl类

<?php /*使用方法 $ch = new Curl_Class(); $ch->set_action("login", $loginurl, $refer); $postdata = array("username"=>"fortest", "password"=>"12345"); $ch->open()->get_cookie($this->_cookie)

Java基础之装饰类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java基础之装饰类:简介:首先他是一种设计模式属于23种设计模式之一,英文叫Decorator Pattern.又叫装饰者模式.装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来

flash编程基础1----文档类路径设置

文档类路径设置 文档类的作用是把flash和as关联起来,我们只要在as中写代码来控制显示对象和程序逻辑.但是经常会碰到一些问题: 无法在类路径中找到该文档类的定义,包名称不能反映此文件的位置.下面我们通过一个例子来解决这个问题. 假如在包com.as3.mytest.eventTest下有两个文件:test.fla,EventTest001.as,我们要把这两个文件关联起来.EventTest001.as的包名默认为com.as3.mytest.eventTest像这样: package co

从0开始,一起搭框架、做项目(3)公共基础数据操作类 RepositoryBase

索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们写一个基础数据的操作类,如果里面有大家不理解的地方,可采取两种方式,第一:提出来,第二:会用就行.这个类呢我一般不去修改它,因为基础操作类,大家也可以直接拷贝到自己的项目中. 项目准备 我们用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家对ASP.NET MVC有一个初步的理解,理论性的东西我们不做过多解释,有些地方不理解也没关系,会用就行了,用的多

Java面试题第一天(一个源文件多个类,&amp;和&amp;&amp;的区别)

一个源文件多个类 一个java源文件中是否可以包含多个类(不是内部类)?有什么限制? 答:可以有多个类,但只能有一个public的类,并且public的类名补习与文件名相一致. 示例代码如下: public class Test1 { private Integer id; public void print(){ System.out.println("id="+id); } } class Test11{ private Integer id; } //内部类 class Oute

PHP 面向对对象基础(接口,类)

介绍PHP面向对象的基础知识 1. 接口的定义interface ,类定义class,类支持abstract和final修饰符,abstract修饰为抽象类,抽象类 不支持直接实例化,final修饰的类/方法不能被继承/方法重写.2. 接口的实现通过implements,类继承extends interface IShape{ function draw_core(); }; class PathShape implements IShape{ public function draw_core

C#文件操作基础之File类和FileInfo类

文件和I/O流的差异: 文件是一些具有永久存储及特定顺序的字节组成的一个有序的.具有名称的集合. 因此对于文件,我们常常想到目录路径,磁盘存储,文件和目录名等方面. I/O流提供一种后备存储写入字节和从后备存储读取字节的方式. 后备存储可以为多种存储媒介之一. System.IO命名空间中的常用类: BinaryReader     用特定的编码将基元数据类型读作二进制值 BinaryWriter     以二进制形式将基元类型写入流,并支持用特定的编码写入字符串 Directory