浅谈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中创建并处理图象
Oct 09 PHP
php中取得URL的根域名的代码
Mar 23 PHP
PHP闭包(Closure)使用详解
May 02 PHP
PHP实现变色验证码实例
Jan 06 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
Jan 17 PHP
基于CakePHP实现的简单博客系统实例
Jun 28 PHP
php算法实例分享
Jul 14 PHP
Docker 如何布置PHP开发环境
Jun 21 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 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
spl_autoload_register与autoload的区别详解
2013/06/03 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
2016/03/22 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
jQuery插件FusionCharts绘制的2D双柱状图效果示例【附demo源码】
2017/05/13 jQuery
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
小程序和web画三角形实现解析
2019/09/02 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
python网络编程实例简析
2014/09/26 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
Python通过Django实现用户注册和邮箱验证功能代码
2017/12/11 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
全球速卖通西班牙站:AliExpress西班牙
2017/10/30 全球购物
阿里健康官方海外旗舰店:阿里健康国际自营
2017/11/24 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
The North Face意大利官网:服装、背包和鞋子
2020/06/17 全球购物
init进程的作用
2012/04/12 面试题
军训学生自我鉴定
2014/02/12 职场文书
机关搬迁方案
2014/05/18 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
《风筝》教学反思
2016/02/23 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis