zoukankan      html  css  js  c++  java
  • 一个简单的PHP的CURL类

    我写了一个基于CURL的PHP5的类,功能比较简单,比较适合学习用。如果真要应用的话,那绝对推荐Snoopy 太强大了。虽然它不是在curl基础上的。转自 http://xiaowai.gentieba.com/node/33

    <?php
    class my_curl {
         
        public function __construct() {
            ! extension_loaded ( 'curl' ) && exit ( 'CURL扩展未加载,程序终止运行' );
            header ( 'Content-Type: text/html; charset=utf-8' );
        }
         
        public function go($url, $vars = '') {
            $ch = curl_init ();
            $array [CURLOPT_URL] = $url;
            $array [CURLOPT_HEADER] = false;
            $array [CURLOPT_RETURNTRANSFER] = true;
            $array [CURLOPT_FOLLOWLOCATION] = true;
             
            if (! empty ( $vars )) {
                $postfields = $this->render_postfields ( $vars ); //生成urlcode的url
                $array [CURLOPT_POST] = true;
                $array [CURLOPT_POSTFIELDS] = $postfields;
            }
             
            //判断是否有cookie,有的话直接使用
            if ($_COOKIE ['cookie_jar'] || is_file ( $_COOKIE ['cookie_jar'] )) {
                $array [CURLOPT_COOKIEFILE] = $_COOKIE ['cookie_jar']; //这里判断cookie
            } else {
                $cookie_jar = tempnam ( '/tmp', 'cookie' ); //产生一个cookie文件
                $array [CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
                setcookie ( 'cookie_jar', $cookie_jar ); //保存cookie路径
            }
            curl_setopt_array ( $ch, $array ); //传入curl参数
            $content = curl_exec ( $ch ); //执行
            curl_close ( $ch );//关闭
            return $content; //返回
        }
         
        protected function render_postfields($vars) {
            foreach ( $vars as $key => $values ) {
                $postdata .= urlencode ( $key ) . "=" . urlencode ( $values ) . "&";
            }
            return $postdata;
        }
    }
    ?>

    使用方法 

    <?php
    if($_POST['email']&&$_POST['password']){
        include 'curl_class.php';
    $curl = new my_curl ();
    $vars ['email'] = $_POST['email'];
    $vars ['password'] = $_POST['password'];
    //$vars ['done'] = '/';
    //$vars ['submit'] = '登 录';
    echo $curl->go ( 'http://www.renren.com/PLogin.do', $vars );
     
    }else{
    ?>
    <html>
        <form action="" class="login-form" id="loginForm" method="post">
            <input type="text" id="email" name="email"/>
            <input type="text" id="password" name="password"/>
            <input type="submit" tabindex="4" value="登录" class="input-submit" id="login">
        </form>
    </html>
    <?php }?>
  • 相关阅读:
    mysql 主键、复合主键等
    win7 增加edit with vim右键菜单
    设计模式学习1:简单工厂模式实现加减乘除等运算
    C#练习笔记3:分部类分部方法,索引结合异常的使用
    C#练习笔记4:枚举和数组练习
    C#练习笔记2:dll的编写与引用
    C#练习笔记1:自定义的类型转换和操作符的重载
    学习杂记1:c#,顺序泛型栈,泛型委托,Lambda,拓展方法
    数据结构学习日记3:顺序栈的实现(两种不同的方法)
    Unity中字幕的一个简单实现方式小结
  • 原文地址:https://www.cnblogs.com/shanyansheng/p/5474098.html
Copyright © 2011-2022 走看看