一个简单的PHP的CURL类

本文介绍了一个简单的PHP5类,用于基于CURL实现HTTP请求功能,适用于学习用途。提供了实例代码及使用方法,包括如何处理POST数据、发送GET请求和管理Cookie。

我写了一个基于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 }?>

 

转载于:https://www.cnblogs.com/shanyansheng/p/5474098.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值