码迷,mamicode.com
首页 > Web开发 > 详细

PHP之curl函数相关试题

时间:2016-08-12 19:50:55      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

一.问答题

1.curl_setopt中超时设置,URL设置,post数据接收设置,解压缩设置,HEADER信息设置的参数名分别是什么?

2.curl批量设置参数的函数是什么?

 

二.编程题

1.封装一个curl类,提供get,post方法,通过传递url,data数据获取某个网址的内容,方法返回信息格式为array(‘response‘=>‘网页内容‘,‘status‘=>‘http请求状态码‘,‘error‘=>‘错误信息‘)

   要求能够改header信息,并且有超时机制,zip解压缩功能

 


 

一.问答题

1.CURLOPT_TIMEOUT,CURLOPT__URL,CURLOPT_POSTFILEDS,CURLOPT_ENCODING,CURLOPT_HTTPHEADER

2.curl_setopt_array($ch,$options);

 

二.编程题

1.

<?php
class curl{

    private $ch = ‘‘;
    private $timeout = 5;
    public  $options = array();
    public  $headers = array();
    public  $url = ‘‘;

    function __construct()
    {
        $this -> ch = curl_init();
        $this -> headers[] = "Accept: */*";
        $this -> headers[] = "Accept-Encoding: gzip,deflate,sdch";
        $this -> headers[] = "Connection: keep-alive";
    }

    public function get($url,$timeout = NULL)
    {
        $this -> url = $url;
        $this -> options[CURLOPT_TIMEOUT] = $timeout?$timeout : $this -> timeout;
        $this -> setopt();
        return $this -> result();
    }

    public function post($url,$data,$timeout = NULL)
    {
        $this -> url = $url;
        $this -> options[CURLOPT_TIMEOUT] = $timeout?$timeout : $this -> timeout;
        $this -> options[CURLOPT_POST] = true;
        $this -> options[CURLOPT_POSTFIELDS] = $data;
        $this -> setopt();
        return $this -> result();
    }
    
    private function setopt()
    {
        curl_setopt($this -> ch, CURLOPT_URL, $this -> url);
        curl_setopt($this -> ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($this -> ch, CURLOPT_ENCODING , ‘gzip‘);
        curl_setopt($this -> ch, CURLOPT_HTTPHEADER, $this -> headers);
        curl_setopt_array($this -> ch, $this -> options);
    }

    private function execs() {return curl_exec($this -> ch);}
    private function status(){return curl_getinfo($this -> ch, CURLINFO_HTTP_CODE);}
    private function error() {return (curl_errno($this -> ch))?curl_error($this -> ch) : ‘‘;}
    private function result()
    {
        $result[‘response‘] = $this -> execs();
        $result[‘status‘] = $this -> status();
        $result[‘error‘] = $this -> error();
        return $result;
    }
}

 

PHP之curl函数相关试题

标签:

原文地址:http://www.cnblogs.com/xiaozong/p/5766160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!