PHP之curl函数相关试题

一.问答题

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;
    }
}
时间: 2024-10-06 22:20:35

PHP之curl函数相关试题的相关文章

PHP面试题及答案解析(8)—PHP综合应用题

1.写出下列服务的用途和默认端口. ftp.ssh.http.telnet.https ftp:File Transfer Protocol,文件传输协议,是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输,其默认端口是21. ssh:Secure Shell,安全外壳协议,建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,其默端口是22. http:hypertext transport protocol,超文本传送协议,是

linux系统运维企业常见面试题集合(三)

linux系统运维企业常见面试题集合(三) 01  写一个sed命令,修改/tmp/input.txt文件的内容,要求:(1) 删除所有空行:(2) 一行中,如果包含"11111",则在"11111"前面插入"AAA",在"11111"后面插入"BBB",比如:将内容为0000111112222的一行改为:0000AAA11111BBB2222 [[email protected]~]# cat -n /t

php面试题之一——PHP核心技术(高级部分)

一.PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) <?php /** * 创建多级目录 * @param $path string 要创建的目录 * @param $mode int 创建目录的模式,在windows下可忽略 */ function create_dir($path,$mode = 0777) { if (is_dir($path)) { # 如果目录已经存在,则不创建 echo "该目录已经存在"; } else { # 不存在,创建

第十二章 Shell脚本编写及常见面试题(一)

注意事项 1)开头加解释器:#!/bin/bash 2)语法缩进,使用四个空格:多加注释说明. 3)命名建议规则:变量名大写.局部变量小写,函数名小写,名字体现出实际作用. 4)默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域. 5)有两个命令能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程. 6)写脚本一定先测试再到生产上. 12.1 获取随机字符串或数字 获取随机8位字符串: 方法1: # echo $RANDOM |md5sum |

C++常识面试题

今年要找工作了,准备点基础地面试题 1,关于动态申请内存 答:内存分配方式三种: (1)从静态存储区域分配:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在. 全局变量,static变量. (2)在栈上创建:在执行函数时,函数内局部变量的存储单元都可以在栈上创建, 函数执行结束时这些存储单元自动被释放. 栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限. (3)用malloc或new申请内存之后,应该立即检查指针值是否为NULL.防止使用指针值为NULL

大公司的PHP面试题

1. 禁用COOKIE 后 SEESION 还能用吗? 2. 抓取远程图片到本地,你会用什么函数? 4. 你觉得在pV10W的时候, 同等配置下,LUNIX 比WIN快多少? 5. 简述pOST 和GET传输的最大容量分别是多少? 6. 用最少的代码写一个求3值最大值的函数. 附部分答案(不保证是正确的解) 1. 不能2 fsockopen 4 (不做优化的情况下一样)5 2MB,1024B6 function($a,$b,$c){return $a>$b? ($a>$c? $a : $c)

php面试题之一——php核心技术

一.PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) <?php /** * 创建多级目录 * @param $path string 要创建的目录 * @param $mode int 创建目录的模式,在windows下可忽略 */ function create_dir($path,$mode = 0777) { if (is_dir($path)) { # 如果目录已经存在,则不创建 echo "该目录已经存在"; } else { # 不存在,创建

PHP笔试题总结1

---恢复内容开始--- 1.1    PHP中判断变量的相关函数 1.2    strlen( )与mb_strlen( )的作用分别是什么(新浪网技术部) strlen 和mb_strlen 都是用于获取字符串长度的,其中strlen只针对单字节编码字符,也就是说它计算的是字符串的总字节数,如果是多字节编码,如gbk和utf8,使用strlen得到的不是字符串的个数,而是该字符串的总字节数,可以使用mb_strlen获取其字符个数,使用mb_strlen要注意两点,一是要开启mbstring

几道shell面试题及答案

企业面试题1: 已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字? 21029299 00205d1c a3da1677 1f6d12dd 890684b 解题思路:通过每次传递一个参数的方式,来实现依次破解 $RANDOM的范围为0-32767         #!/bin/bash         #Author: liuwei         #Site: www.51liuzw.com