浅谈PHP中的数据传输CURL


Posted in PHP onSeptember 06, 2016

确认是否安装了CURL扩展

Linux下命令:

[root@fengniu020 ~]# php -i | grep -i curl
Additional .ini files parsed => /etc/php.d/curl.ini,
curl
cURL support => enabled
cURL Information => 7.19.7

curl操作步骤解析:

浅谈PHP中的数据传输CURL

CURL实例

1.一个简单的curl,抓取百度首页

2.下载一个网页并把内容中的“百度”替换为“摆渡”之后输出

3.调用WebService

一个简单的curl,抓取百度首页

<?php
$curl=curl_init('https://3water.com');
curl_exec($curl);
curl_close($curl);
?>

下载一个网页并把内容中的“百度”替换为“摆渡”之后输出

<?php
/**
 * 实例描述:在网络上下载一个网页并把内容中的“百度”替换为“摆渡”之后输出
 */
$curlobj = curl_init();      // 初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");    // 设置访问网页的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);      // 执行之后不直接打印出来
$output=curl_exec($curlobj); // 执行
curl_close($curlobj);     // 关闭cURL
echo str_replace("百度","摆渡",$output);
?>

调用WebService

<?php
/**
 * 实例描述:通过调用WebService查询北京的当前天气
 * 下方接口,免费用户24小时内访问是有限制的,需要存储信息
 */
$data = 'theCityName=北京';
//$data = 'theCityName=北京&';//多个用&号连接
$curlobj = curl_init();  
curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName"); 
curl_setopt($curlobj, CURLOPT_HEADER, 0); 
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curlobj, CURLOPT_POST, 1); //POST方式
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data); 
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded; charset=utf-8", 
  "Content-length: ".strlen($data)
  )); //HTTP请求头
curl_setopt ($curlobj, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$rtn = curl_exec($curlobj);  
if(!curl_errno($curlobj)){
  // $info = curl_getinfo($curlobj); 
  // print_r($info);
  echo $rtn; 
} else {
 echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

从FTP服务器下载一个文件到本地

<?php
/**
 * 代码实例-PHP-cURL实战
 * 实例描述:从FTP服务器下载一个文件到本地
 */
$curlobj = curl_init();  
curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/downloaddemo.txt"); 
curl_setopt($curlobj, CURLOPT_HEADER, 0); 
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码
// Sets up the output file
$outfile = fopen('dest.txt', 'wb');//保存到本地的文件名
curl_setopt($curlobj, CURLOPT_FILE, $outfile);

$rtn = curl_exec($curlobj); 
fclose($outfile); 
if(!curl_errno($curlobj)){
  // $info = curl_getinfo($curlobj); 
  // print_r($info);
  echo "RETURN: " . $rtn; 
} else {
 echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

把本地文件上传到FTP服务器上

<?php
/**
 * 代码实例-PHP-cURL实战
 * 实例描述:把本地文件上传到FTP服务器上
 */
$curlobj = curl_init();  
$localfile = 'ftp01.php';//需要上传的文件
$fp = fopen($localfile, 'r');

curl_setopt($curlobj, CURLOPT_URL, "ftp://192.168.1.100/ftp01_uploaded.php");//上传后保存的文件名
curl_setopt($curlobj, CURLOPT_HEADER, 0); 
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curlobj, CURLOPT_TIMEOUT, 300); // times out after 300s
curl_setopt($curlobj, CURLOPT_USERPWD, "peter.zhou:123456");//FTP用户名:密码

curl_setopt($curlobj, CURLOPT_UPLOAD, 1);
curl_setopt($curlobj, CURLOPT_INFILE, $fp);//传输打开的文件
curl_setopt($curlobj, CURLOPT_INFILESIZE, filesize($localfile));//上传的文件大小
$rtn = curl_exec($curlobj); 
fclose($fp); 
if(!curl_errno($curlobj)){
  echo "Uploaded successfully."; 
} else {
 echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

下载网络上面的一个HTTPS的资源

<?php
/**
 * 代码实例-PHP-cURL实战
 * 实例描述:下载网络上面的一个HTTPS的资源
 */
$curlobj = curl_init();      // 初始化
curl_setopt($curlobj, CURLOPT_URL, "https://ajax.aspnetcdn.com/ajax/jquery.validate/1.12.0/jquery.validate.js");    // 设置访问网页的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);      // 执行之后不直接打印出来

// 设置HTTPS支持
date_default_timezone_set('PRC'); // 使用Cookie时,必须先设置时区
curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查从证书中检查SSL加密算法是否存在,设置为0就是终止从服务器端进行验证
curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, 2); // 

$output=curl_exec($curlobj); // 执行
curl_close($curlobj);     // 关闭cURL
echo $output;
?>

以上这篇浅谈PHP中的数据传输CURL就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP生成自己的LOG文件
Oct 09 PHP
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
PHP数字格式化
Dec 06 PHP
FCKeditor的安装(PHP)
Jan 13 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
PHP中把对象数组转换成普通数组的方法
Jul 10 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
Feb 28 PHP
thinkphp3.2实现在线留言提交验证码功能
Jul 19 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PHP实现页面静态化的超简单方法
Sep 06 #PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 #PHP
PHP7 新特性详细介绍
Sep 06 #PHP
PHP会员找回密码功能的简单实现
Sep 05 #PHP
浅谈php中urlencode与rawurlencode的区别
Sep 05 #PHP
浅谈mysql_query()函数的返回值问题
Sep 05 #PHP
PHP针对多用户实现更换头像功能
Sep 04 #PHP
You might like
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
PHP中常用的输出函数总结
2014/09/22 PHP
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
js实现select下拉框选择
2020/01/11 Javascript
Vuex实现购物车小功能
2020/08/17 Javascript
Python实现的破解字符串找茬游戏算法示例
2017/09/25 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python编写打字训练小程序
2019/09/26 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
香港礼品网站:GiftU eshop
2017/09/01 全球购物
超市客服工作职责
2014/06/11 职场文书
物理学专业求职信
2014/07/04 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
捐助感谢信
2015/01/22 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
python使用pycharm安装pyqt5以及相关配置
2022/04/22 Python
MySQL优化之慢日志查询
2022/06/10 MySQL