PHP CURL 笔记

来源:互联网 发布:python time 加减 编辑:程序博客网 时间:2024/06/05 09:03

CURL

在PHP的世界里面,如果想创建一个HTTP请求,CURL则是其中的一种选择。

请求例子:

    $url = 'www.baidu.com';    $parameter = array();    $partnerKey = '765bdc6ead9a1bbd2697e9b04f1b9147';    $customerHeader = array(        'CutomerHeader:haha'    );    $op = curl_init($url);    curl_setopt($op, CURLOPT_URL,$url);    curl_setopt($ch, CURLOPT_HTTPHEADER, $customerHeader);    curl_setopt($op, CURLOPT_RETURNTRANSFER, true);    curl_setopt($op, CURLOPT_POST, true);    curl_setopt($op, CURLOPT_POSTFIELDS, $parameter);    curl_setopt($op, CURLOPT_TIMEOUT, 60);    $result = curl_exec($op);    curl_close($op);

这个例子主要是对 www.baidu.com 发起了一次post请求 。返回的结果的是一个HTML,内容为

<html><head><title>302 Found</title></head><body bgcolor="white"><center><h1>302 Found</h1></center><hr><center>pr-nginx_1-0-284_BRANCH BranchTime : Mon Aug 15 09:26:31 CST 2016</center></body></html>

哈,我们不用在意这些细节,主要注意力放在 curl_init(), curl_setopt(), curl_exec(),curl_close()四个基本的函数即可。

特别留意一下curl_setopt里面的参数是一个字符串数组,别写成key value 数组,不然很难发现。

具体的参数可以查看 PHP手册 里面的内容。

当我们出现错误的的时候,可以用curl_errno()来判断有无错误内容,然后再用curl_error() 来获取错误信息咯。

本人遇到了一个奇怪的错误:Could not resolve proxy: XXX,后来上stackoverflow查找答案,终于找到了解释。
大概意思是机器配置了默认的http_proxy在环境变量里面。解决方法有两种,一种是直接在PHP代码里面写明curl_setopt($op, CURLOPT_PROXY, '');设置不使用代理。另外一种是修改环境变量。
经查明,机器确实配置了环境变量,我将环境变量删除之后,重启了机器,终于得到了正常的运行结果。

0 0
原创粉丝点击