浅谈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漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
php制作中间带自己定义图片二维码的方法
Jan 27 PHP
PHP中使用json数据格式定义字面量对象的方法
Aug 20 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
thinkphp获取栏目和文章当前位置的方法
Oct 29 PHP
在SAE上搭建最新wordpress的方法
Dec 21 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
Dec 02 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
php写app用的框架整理
Sep 29 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
php 模拟POST|GET操作实现代码
2010/07/20 PHP
php+ajax注册实时验证功能
2016/07/20 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
基于vue实现分页效果
2017/11/06 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
浅谈小程序 setData学问多
2019/02/20 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
js实现批量删除功能
2020/08/27 Javascript
python在不同层级目录import模块的方法
2016/01/31 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python pymysql库的常用操作
2020/10/16 Python
用 python 进行微信好友信息分析
2020/11/28 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
html5 外链式实现加减乘除的代码
2019/09/04 HTML / CSS
广告学毕业生求职信
2014/01/30 职场文书
环境工程专业自荐信
2014/03/03 职场文书
洗发水广告词
2014/03/13 职场文书
超市中秋节促销方案
2014/03/21 职场文书
贷款担保书范文
2014/05/13 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
海弦WR-800F
2022/04/05 无线电