浅谈PHP中的数据传输CURL_php实例

确认是否安装了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操作步骤解析:

CURL实例

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

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

3.调用WebService

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

<?php
$curl=curl_init('http://www.jb51.net');
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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索curl
, php
传输文件
php curl实例、php curl 传输文件、curl实例、httpclient curl 实例、curl gzip 压缩传输,以便于您获取更多的相关知识。

时间: 2024-10-28 16:52:40

浅谈PHP中的数据传输CURL_php实例的相关文章

浅谈PHP中的数据传输CURL

确认是否安装了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操作步骤解析: CURL实例 1.一个简单的curl,抓取百度首页 2.下载一个网页并把内容中的"百度"替换为&

浅谈php中curl、fsockopen的应用_php实例

最近要用到通过post上传文件,网上盛传的有curl的post提交和fsockopen,其中curl最简单,于是从最简单的说起. 这是简单的将一个变量post到另外一个页面 $url = ''; $data = array('a'=> 'b'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_

浅谈php中的循环while、do...while、for、foreach四种循环_php实例

php中的while循环,循环执行代码块制定的次数,或者当指定的条件为真时循环执行代码块. ------------------------------------------------------------- 在我们编写代码是时候,我们经常需要一块代码块重复执行多次.我们就可以使用while循环语句来完成这个任务. while--只要指定条件成立,则循环执行代码块. do...while--首先执行一次代码块,然后在指定的条件成立时重复这个循环. for--循环执行代码块制定的次数. fo

浅谈php中urlencode与rawurlencode的区别_php实例

前段时间说自己遇到了个<URL加号引发错误>的BUG,引起这个bug的原因就是自己在URL中使用了 urlencode 函数,该函数会把空格转换成加号,这样就导致URL解析出错,而空格只有转换成 %20 才可以可以正常解析,这时我们就需要使用 rawurlencode 函数. 下面就介绍一下 urlencode 函数与 rawurlencode 函数的区别: urlencode 函数: 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格

浅谈PHP中try{}catch{}的使用方法_php实例

PHP中try{}catch{}的作用是用来处理异常.可以为我们收集并显示出错误信息.希望通过这篇文章的介绍,大家能掌握这一语句的应用. 在PHP语言中有许多语法需要我们去不断的熟悉,然后才能灵活的运用,编写我们需要的代码程序.在这篇文章中我们将为大家介绍PHP中try{}catch{}的用法. <?php try { //... } catch(Exception $e) { //... } ?> PHP中try{}catch{}是异常处理. 将要执行的代码放入TRY块中,如果这些代码执行过

浅谈javascript中call()、apply()、bind()的用法

  浅谈javascript中call().apply().bind()的用法         一直对Javascript中的apply/call/bind的用法很模糊,恰好看到了这篇文章.对三者之间的区别与联系算是有了比较清晰的认识.这里记录下来,分享给大家. call(thisObj,arg1,arg2...).apply(thisObj,[obj1,obj2...])这二个方法是每个函数都包含的非继承的方法 call(thisobj[, args])和apply(thisobj[, arg

浅谈javascript中this在事件中的应用

 这篇文章主要介绍了浅谈javascript中this在事件中的应用实例,非常有助于我们对this关键字的理解,这里推荐给大家.     this关键字在javascript中是非常强大的,但是如果你不清楚它是怎么工作的就很难使用它.   代码如下: function dosomething(){ this.style.color="#fff"; }   上面这段代码中的this指向什么呢,运行dosomething()会输出什么呢? 在javascript中,this总是指向当前执行

[技术学习]浅谈MFC中超类化技术的实现 .

自 Panr 的 Blog // 关键词:// 面对对象编程.超类化.子类化.Superclassing// MFC.CWnd::SubclassWindow// 通用控件.CMNCTRL//// 主题:// 通过CWnd::SubclassWindow 函数的分析,浅谈MFC中超类化技术的实现////// 背景// 我在2002-12月见了mahongxi (烤鸡翅膀)(色摸)在CSDN上的一个帖// 介绍了MFC中窗体的超类化的概念,以下是对我个人回贴的总结//// 日志// 修改:Panr

浅谈C#中的延迟加载(2)善用virtual

之前的文章"浅谈C#中的延迟加载(1)--善用委托"中介绍了三层结构中在Model层对实体类的属性实现延迟加载的方法,该方法利用C#中的委托来实现,最后虽然延迟加载的目的得以实现,但是给客户端(例如UI层)暴露了不必要的属性(一个委托对象,我使用了泛型的Fun类来实现).这篇文章介绍一种方法来隐藏这个属性,同时又可以达到延迟加载的目的,更重要的是这一切都是在之前的基础上来完成的,不需要改变原来使用到实体类的地方的代码. 按照惯例,我们考虑一下想要我们的代码达到什么效果:首先在Model