curl_init()简单使用

<?php

function _request($curl,$https=true,$method='get',$data=null)
{
$ch=curl_init(); //初始化
curl_setopt($ch,CURLOPT_URL,$curl);
curl_setopt($ch,CURLOPT_HEADER,false);//设置不需要头信息
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//获取页面内容,但不输出
if($https)
{
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);//不做服务器认证
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//不做客户端认证
}

if($method=='post')
{
    curl_setopt($ch, CURLOPT_POST,true);//设置请求是post方式
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置post请求数据
    
}

$str=curl_exec($ch);//执行访问
curl_close($ch);//关闭curl,释放资源
return $str;    
}

echo _request("http://www.baidu.com");



?>
// 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请求的输出信息

在curl_exec()函数执行之后,可以使用curl_getinfo()函数获取CURL请求输出的相关信息,示例代码如下:

curl_exec($ch);
$info = curl_getinfo($sh);
echo ' 获取 '.$info['url'].'耗时'.$info['total_time'].'秒';

 

上述代码中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参数很有意义。

posted @ 2017-12-01 19:11  自由无风  阅读(5679)  评论(0编辑  收藏  举报