学习CURL的PHP扩展

转载自:https://www.cnblogs.com/manongxiaobing/p/4698990.html

 

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。

 

使用CURL的PHP扩展发送请求的基本流程:

  1. 初始化连接句柄;

  2. 设置CURL选项;

  3. 执行并获取结果;

  4. 释放VURL连接句柄。

下面的程序片段是使用CURL发送HTTP的典型过程

// 1. 初始化

$ch = curl_init();

// 2. 设置选项,包括URL

curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net");

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_HEADER,0);

// 3. 执行并获取HTML文档内容

$output = curl_exec($ch);

if($output === FALSE ){

echo "CURL Error:".curl_error($ch);

}

// 4. 释放curl句柄

curl_close($ch);

curl 定制HTTP请求:

  1. CURLOPT_URL 指定请求的URL;

  2. CURLOPT_RETURNTRANSFER 设置为1表示稍后执行的curl_exec函数的返回是URL的返回字符串,而不是把返回字符串定向到标准输出并返回TRUE;

  3. CURLLOPT_HEADER设置为0表示不返回HTTP头部信息。

获取CURL请求的输出信息

curl_exec($ch);

$info = curl_getinfo($sh);

echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

 

使用CURL发送GET请求:

PHP为我们提供了一个函数专门用来拼装GET请求和数据部分——http_build_query,该函数接受一个关联数组,返回由该关联数据描述的GET请求字符串。

 

使用CURL发送POST请求:

/**

** @desc 封装 curl 的调用接口,post的请求方式

**/

function doCurlPostRequest($url,$requestString,$timeout = 5){    //$requestString的格式是“ticket=321&redirectUrl=456”

if($url == '' || $requestString == '' || $timeout <=0){

return false;

}

$con = curl_init((string)$url);

curl_setopt($con, CURLOPT_HEADER, false);

curl_setopt($con, CURLOPT_POSTFIELDS, $requestString);    //设置请求字段

curl_setopt($con, CURLOPT_POST,true);    //设置方式为POST方式

curl_setopt($con, CURLOPT_RETURNTRANSFER,true);

curl_setopt($con, CURLOPT_TIMEOUT,(int)$timeout);

return curl_exec($con);

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值