php中的curl的一些参数总结

原创 2017年07月27日 17:55:59

curl可以根据是否是http或则是https选择加密发送的内容;

使用curl发送请求的基本流程

1,初始化连接句柄;

2,设置curl选项;

3,执行并获取结果;

4,释放curl连接句柄;

例子:

//初始化

$ch = curl_init();

//设置选项

curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com");

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //参数意思:如果成功只将结果返回,不自动输出任何内容

curl_setopt($ch,CURLOPT_HEADER,0);

//执行并获取html内容

$output = curl_exec($ch);

if($output == false){

echo "curl error:".curl_error($ch);

 }

//释放句柄

curl_close($ch);

curl中最重要的函数是curl_setopt()

获取curl请求输出的信息:

curl_exec($ch);

$info = curl_getinfo($ch);

获取curl的请求内容.$info;

curl_getinfo返回的是一个关联数组,包含以下数据:

  • url:网络地址。
  • content_type:内容编码。
  • http_code:HTTP状态码。
  • header_size:header的大小。
  • request_size:请求的大小。
  • filetime:文件创建的时间。
  • ssl_verify_result:SSL验证结果。
  • redirect_count:跳转计数。
  • total_time:总耗时。
  • namelookup_time:DNS查询耗时。
  • connect_time:等待连接耗时。
  • pretransfer_time:传输前准备耗时。
  • size_uplpad:上传数据的大小。
  • size_download:下载数据的大小。
  • speed_download:下载速度。
  • speed_upload:上传速度。
  • download_content_length:下载内容的长度。
  • upload_content_length:上传内容的长度。
  • starttransfer_time:开始传输的时间表。
  • redirect_time:重定向耗时。

curl_getinfo()函数还有一个可选择参数$opt,通过这个参数可以设置以上的常量,对应到上述这个字段;如果设置第二个参数,那么返回的只有第二个参数。例如:$opt为CURLINFO_TOTAL_TIME,则curl_getinfo()函数只返回total_time,即总传输消耗时间,在只需要关注某些传输信息时,设置$opt参数很有意义。

使用CURL发送GET请求

如何使用curl来发送get请求,发送get请求的关键是拼装格式正确的URL.php提供了一个函数来专门拼装GET请求和数据部分----http_build_query(),该函数接受一个关联数组,返回由该关联数据描述的GET请求字符串

例子如下:

//封装curl的get请求方式;doCurlGetRequest()

function doCurlGetRequest($url,$data,$timeout = 5){

if($url == '' || $data = ' '){

return false;

  }

 $url = $url . '?'.http_build_query($data);

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

curl_setopt($ch , CURLOPT_HEADER,false);

curl_setopt($ch , CURLOPT_RETURNTRANSFER , true);

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

return curl_exec($ch);

 }

这个函数把使用http_build_query()拼装好的带GET参数的URL传给curl_init()函数,然后使用curl发送http请求。

使用CURL发送POST请求

可以使用CURLOPT_POSTFIELDS,设置该选项为POST就可以把请求放到正文中。

例子如下:

function doCurlPostRequest($url , $requestString , $timeout = 5){

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

curl_setopt($ch , CURLOPT_HEADER , false);

curl_setopt($ch , CURLOPT_POSTFIELDS , $requeststring);

curl_setopt($ch , CURLOPT_POST , true);

curl_setopt($ch , CURLOPT_RETURNTRANSFER , true);

curl_setopt($ch , CURLOPT_TIMEOUT , $timeout);

return curl_exec($ch);

 }




php curl参数详解

PHP CURL函数笔记说明
  • whq19890827
  • whq19890827
  • 2016年02月21日 16:03
  • 1832

php curl参数详解之post方法

利用记录的URL参数解释,写一个post方法: function do_post($url, $data) {     $ch = curl_init(); //设置CURLOPT_RETUR...
  • whq19890827
  • whq19890827
  • 2016年02月21日 16:13
  • 2478

php中curl的参数详解

在php中最常用来发起http请求的莫过于curl,但是发现自己在工作中如果有需要用到curl的时候,都是直接从网上抄一段代码拿来用,而且curl的参数实在是太多,看上去让人感觉眼花缭乱,自己好像从来...
  • u011250882
  • u011250882
  • 2015年11月24日 23:12
  • 1187

PHP使用CURL发送GET请求时传递参数的问题

最近在使用curl发送get请求的时候发现传递参数一直没有生效,也没有返回值,以为是自己哪里写错了,网上找东西时也没有人专门来说get请求传递参数的内容,所以,今天在这里记录一下,希望可以帮到一些人g...
  • ithover
  • ithover
  • 2017年11月28日 22:36
  • 300

php中CURL的一些参数解释

  • rghanbing4
  • rghanbing4
  • 2016年06月16日 19:27
  • 140

关于PHP Curl POST 数据丢失的问题

$ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $uri ); curl_setopt ( $ch, CURLOPT_POST, 1 ); cu...
  • u011638947
  • u011638947
  • 2015年01月25日 13:12
  • 1905

PHP中CURL方法及curl_setopt()与curl_getinfo()函数参数说明

使用PHP的cURL库可以简单和有效地抓取网页内容,本文主要记录CURL方法及curl_setopt()函数的一些参数。 简单示例 CURL库方法 名称 说明 ...
  • myweishanli
  • myweishanli
  • 2014年09月01日 08:41
  • 948

php curl post 短信接口那边接收不到数据

昨天遇到一个很奇怪的问题,用的curl post发送数据到短信接口那边的时候总是报错,空指针异常,后来我本地测试,用$_POST可以接收到数据 function curl_post($uri,$da...
  • xiaoai5324
  • xiaoai5324
  • 2015年05月30日 09:21
  • 2065

php curl post raw json参数

php curl post raw json参数
  • meimeieee
  • meimeieee
  • 2017年09月18日 09:29
  • 631

【php中的curl】php中curl的详细解说

这几天在帮一些同学处理问题的时候,突然发现这些同学是使用file_get_contents()函数来采集页面内容的,貌似都没有curl的概念亦或是对这种工具特别不敏感, 本文我来给大家详细介绍下cU...
  • yanhui_wei
  • yanhui_wei
  • 2014年03月19日 14:38
  • 129875
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php中的curl的一些参数总结
举报原因:
原因补充:

(最多只允许输入30个字)