复印curl学习记录
2016-06-26 11:32
573 查看
昨天复习学习了php中curl的使用,现复习回顾之。
curl的一般步骤:
初始化 curl_init()
发送执行解析curl_exec()
释放句柄curl_close()
这个是个小例子。
//初始化curl
$curl = curl_init("www.baidu.com");
//发送和执行
curl_exec($curl);
//释放句柄
curl_close($curl);
curl高级:
这就会用到curl_setopt(),PHP手册中讲述的很详细,我自己记住的也不多,贴下几个例子以备后续查看。
//实战2 下载网络上面的一个HTTPS的资源
$curl = curl_init();
$url = 'https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js';
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置HTTPS支持
date_default_timezone_set('PRC');//设置时区,这个必须设置
//取消验证 对认证证书来源的检查从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
$output = curl_exec($curl);
curl_close($curl);
echo $output;
说到这里,还有一个非常重要的东西,那就是curl_error();根据这个错误报告,我们才能知道,程序到底是哪里出错了;
//实战3 调用接口查询天气,
$data = 'theCityCode=北京&theUserID=';
$url = 'http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "$url");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8",
"Content-Length:".strlen($data)));
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36');
$output = curl_exec($curl);
//设置错误报告
//curl_error — 返回一个保护当前会话最近一次错误的字符串
//curl_errno — 返回最后一次的错误号
if (!curl_errno($curl)) {
echo $output;
} else {
echo 'Curl error:' . curl_error($curl);
}
curl_close($curl);
//实战4 从ftp上面下载东西
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "FTP://127.0.0.1/topchn001.htm");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置连接时间,300s没完成,就断开
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
//设置登录名和密码 用:分开
curl_setopt($curl, CURLOPT_USERPWD, "xiao:xiao");
$outfile = fopen("dest.txt","wb");
curl_setopt($curl, CURLOPT_FILE, $outfile);
$output = curl_exec($curl);
fclose($outfile);
if (!curl_errno($curl)) {
echo $output;
} else {
echo 'Curl error ' . curl_error($curl);
}
curl_close($curl);
//实战5 往ftp上面上传文件
//注意 若是报出550 错误 需要检查账户权限
$curl = curl_init();
$localfile = 'dest.txt';
$fp = fopen($localfile,"r");
curl_setopt($curl, CURLOPT_URL, 'FTP://127.0.0.1/cc.txt');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置连接断开时间 300s没完成就 不做了
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
//设置登录名和密码 用:分开
curl_setopt($curl, CURLOPT_USERPWD, "xiao:xiao");
//允许文件上传
curl_setopt($curl, CURLOPT_UPLOAD, 1);
//读取文件地址
curl_setopt($curl, CURLOPT_INFILE, $fp);
//检查上传的文件大小
curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localfile));
$output = curl_exec($curl);
fclose($fp);
if (!curl_errno($curl)) {
echo "ok";
} else {
echo 'Curl error ' . curl_error($curl);
}
curl_close($curl);
curl的一般步骤:
初始化 curl_init()
发送执行解析curl_exec()
释放句柄curl_close()
这个是个小例子。
//初始化curl
$curl = curl_init("www.baidu.com");
//发送和执行
curl_exec($curl);
//释放句柄
curl_close($curl);
curl高级:
这就会用到curl_setopt(),PHP手册中讲述的很详细,我自己记住的也不多,贴下几个例子以备后续查看。
//实战2 下载网络上面的一个HTTPS的资源
$curl = curl_init();
$url = 'https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js';
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置HTTPS支持
date_default_timezone_set('PRC');//设置时区,这个必须设置
//取消验证 对认证证书来源的检查从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
$output = curl_exec($curl);
curl_close($curl);
echo $output;
说到这里,还有一个非常重要的东西,那就是curl_error();根据这个错误报告,我们才能知道,程序到底是哪里出错了;
//实战3 调用接口查询天气,
$data = 'theCityCode=北京&theUserID=';
$url = 'http://ws.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "$url");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8",
"Content-Length:".strlen($data)));
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.152 Safari/537.36');
$output = curl_exec($curl);
//设置错误报告
//curl_error — 返回一个保护当前会话最近一次错误的字符串
//curl_errno — 返回最后一次的错误号
if (!curl_errno($curl)) {
echo $output;
} else {
echo 'Curl error:' . curl_error($curl);
}
curl_close($curl);
//实战4 从ftp上面下载东西
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "FTP://127.0.0.1/topchn001.htm");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置连接时间,300s没完成,就断开
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
//设置登录名和密码 用:分开
curl_setopt($curl, CURLOPT_USERPWD, "xiao:xiao");
$outfile = fopen("dest.txt","wb");
curl_setopt($curl, CURLOPT_FILE, $outfile);
$output = curl_exec($curl);
fclose($outfile);
if (!curl_errno($curl)) {
echo $output;
} else {
echo 'Curl error ' . curl_error($curl);
}
curl_close($curl);
//实战5 往ftp上面上传文件
//注意 若是报出550 错误 需要检查账户权限
$curl = curl_init();
$localfile = 'dest.txt';
$fp = fopen($localfile,"r");
curl_setopt($curl, CURLOPT_URL, 'FTP://127.0.0.1/cc.txt');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
//设置连接断开时间 300s没完成就 不做了
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
//设置登录名和密码 用:分开
curl_setopt($curl, CURLOPT_USERPWD, "xiao:xiao");
//允许文件上传
curl_setopt($curl, CURLOPT_UPLOAD, 1);
//读取文件地址
curl_setopt($curl, CURLOPT_INFILE, $fp);
//检查上传的文件大小
curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localfile));
$output = curl_exec($curl);
fclose($fp);
if (!curl_errno($curl)) {
echo "ok";
} else {
echo 'Curl error ' . curl_error($curl);
}
curl_close($curl);
相关文章推荐
- ipython常用方法说明
- 你可能不了解java接口
- PAT 1007. Maximum Subsequence Sum (25)
- OpenCV代码提取:merge/split函数的实现
- OpenCV代码提取:merge/split函数的实现
- 利用正则表达查找文件
- 关于acm专题的相关资料下载
- FileStream\StreamReader\StreamWriter
- pySerial -- Python的串口通讯模块
- PHP实现简单的万年历(实例)
- JPA关系映射之many-to-many
- 函数指针的使用
- Java安全通信:HTTPS与SSL
- java安全框架-Shiro学习笔记(一)-入门小案例
- 纯Javascript炫酷时钟、滚动文字广告--网站实用实例
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis+Git)
- Linux学习之软件包管理--yum在线管理
- Struts2—非UI标签—数据标签
- 无法通过方法调用转换将实际参数android.app.FragmentManager转换为FragmentTransaction
- java中随机数的生成总结