注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

记录~~~

Stay Hungry. Stay Foolish.

 
 
 

日志

 
 

php之cURL学习笔记2  

2013-06-02 14:00:04|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

<?php
//1、初始化一个cURL会话
$ch = curl_init();
//2、设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,'http://www.php.net');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // 将 curl_exec() 获取的信息以文件流的形式返回,
// 而不是直接输出。

curl_setopt($ch,CURLOPT_HEADER,0);// 启用时会将头文件的信息作为数据流输出。
//3 、 执行并获取html文档内容。
$output = curl_exec($ch);
//4、 释放cURL句柄;
curl_close($ch);
//echo $output;


检测cURL错误 和获取返回信息:

<?php
//1、初始化一个cURL会话
$ch = curl_init();
//2、设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,'http://www.php.net');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // 将 curl_exec() 获取的信息以文件流的形式返回,
// 而不是直接输出。

curl_setopt($ch,CURLOPT_HEADER,0);// 启用时会将头文件的信息作为数据流输出。
//3 、 执行并获取html文档内容。
$output = curl_exec($ch);
//$output = false;

//检测是否有错误:
if($output === false){
echo "cURL Error :" . curl_error($ch);
//如果是一个不存在的网址时:cURL Error :couldn't connect to host
}
$info = curl_getinfo($ch);
echo "<pre>";
var_dump($info);
echo "</pre>";

/*
array(20) {
["url"]=> //资源网络地址
string(18) "http://www.php.net"
["content_type"]=> //内容编码
string(23) "text/html;charset=utf-8"
["http_code"]=> //http 状态码
int(200)
["header_size"]=> //header的大小
int(458)
["request_size"]=> //请求的大小
int(50)
["filetime"]=> //文件创建时间
int(-1)
["ssl_verify_result"]=> //SSL 验证结果
int(0)
["redirect_count"]=> //跳转次数
int(0)
["total_time"]=> //耗时
float(1.034)
["namelookup_time"]=> //DNS 查询时间
float(0.005)
["connect_time"]=> //连接时间
float(0.213)
["pretransfer_time"]=> //准备传输耗时
float(0.213)
["size_upload"]=> //上传数据大小
float(0)
["size_download"]=> //下载数据大小
float(43125)
["speed_download"]=> //下载速度
float(41706)
["speed_upload"]=> //上传速度
float(0)
["download_content_length"]=> //下载内容长度
float(0)
["upload_content_length"]=> //上传内容长度
float(0)
["starttransfer_time"]=> //开始传输耗时
float(0.414)
["redirect_time"]=> //重定向耗时
float(0)
}
*/


//4、 释放cURL句柄;
curl_close($ch);
//echo $output;



cURL抓取图片:

<?php
//error_reporting(E_ALL);
//1、初始化一个cURL会话
//@header('Content-Type: image/jpg');
$ch = curl_init();
//2、设置选项,包括URL
curl_setopt($ch,CURLOPT_URL,"http://it227.sinaapp.com/Public/images/1.jpg");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // 将 curl_exec() 获取的信息以文件流的形式返回,
// 而不是直接输出。

//为什么这里要下面这句注释掉 才能抓取成功?

//curl_setopt($ch,CURLOPT_HEADER,1);// 启用时会将头文件的信息作为数据流输出。
//3 、 执行并获取html文档内容。
$output = curl_exec($ch);
$info = curl_getinfo($ch);

//4、 释放cURL句柄;
curl_close($ch);
echo $output;
//echo $info['size_download'];
file_put_contents('a.gif',$output);
$size = filesize('a.gif');
if($size != $info['size_download']){
echo "下载数据不完整";
} else {
echo "下载数据完整";
}


4.4.4 在cURL中用POST方法发送数据:
post_out.php

<?php

echo "<pre>";
var_dump($_POST);exit;
echo "</pre>";

demo.php:

<?php
$url = "http://localhost/demo/post_out.php";

$post_data = array(
'foo' => 'bra',
'foo2' => 'bphp',
'foo3' => 'ccca',
);
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

// 设置为post
curl_setopt($ch, CURLOPT_POST, 1);
//把post的变量加上

curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

$output = curl_exec($ch);

curl_close($ch);

echo $output;


返回结果:
array
'foo' => string 'bra' (length=3)
'foo2' => string 'bphp' (length=4)
'foo3' => string 'ccca' (length=4)

  评论这张
 
阅读(148)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018