龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 一个简单的PHP的CURL类

时间:2014-09-03 16:10来源:网络整理 作者:网络 点击:
分享到:
一个简单的PHP的CURL类 [代码片段(44行)]
<?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;
    }
}
?>
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接