浅谈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正则表达式使用的详细介绍
Apr 27 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
采用memcache在web集群中实现session的同步会话
Jul 05 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
php+redis实现多台服务器内网存储session并读取示例
Jan 12 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
mongodb和php的用法详解
Mar 25 PHP
PHP中quotemeta()函数的用法讲解
Apr 04 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
php,ajax实现分页
2008/03/27 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
jQuery 入门讲解1
2009/04/15 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
2015/12/10 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
javascript如何创建对象
2016/08/29 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
让python json encode datetime类型
2010/12/28 Python
用Python进行基础的函数式编程的教程
2015/03/31 Python
JSON Web Tokens的实现原理
2017/04/02 Python
Python生成随机密码的方法
2017/06/16 Python
Python 学习教程之networkx
2019/04/15 Python
python打开windows应用程序的实例
2019/06/28 Python
python机器学习库xgboost的使用
2020/01/20 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
Python实现异步IO的示例
2020/11/05 Python
什么是属性访问器
2015/10/26 面试题
金融行业务员的自我评价
2013/12/13 职场文书
医院实习介绍信
2014/01/12 职场文书
专题组织生活会思想汇报
2014/10/01 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技