xml地图|网站地图|网站标签 [设为首页] [加入收藏]

利用Curl下载文件实时进度条显示的实现,PHP扩展

来源:http://www.ccidsi.com 作者:呼叫中心培训课程 人气:181 发布时间:2019-07-25
摘要:前言 截止日前,要做一个网页小偷程序的时候才发觉file_get_content已经完全无法满意供给了。小编以为,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,别的都不曾curl好

前言

截止日前,要做一个网页小偷程序的时候才发觉file_get_content已经完全无法满意供给了。小编以为,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,别的都不曾curl好。

福如东海的功力:

近年在捣鼓命令行下的编制程序,下载文件延续二个难熬的历程,假诺有进程条就好过多了!!!

入眼差距:

1、达成远程获取和访谈内容

先上贰个进程条的扩展包,依旧不错的 (本地下载.rar))

学学才意识,curl帮忙广大协商,有FTP, FTPS, HTTP, HTTPS, GOPHE索罗德, TELNET, DICT, FILE以及LDAP,也正是说,它能一气浑成比非常多file_get_content做不到的作业。curl在php能够兑现长途获取和访问内容;完结PHP网页版的FTP上传下载;达成模拟登入;达成接口对接(API),数据传输;完毕模拟Cookie;下载文件断点续传等等,作用非常有力。

2、达成PHP 网页版的FTP上传下载

效果图:

打听curl一些主导的应用后,才发觉实际并简单,只不过记住里面有个别设置参数,难弄一点,可是我们铭记多少个常用的就可以了。

3、落成模拟登录:去二个邮件系统,curl可以依样葫芦cookies

图片 1

开启curl:

4、实现接口对接(API),数据传输等:通过贰个阳台发送短信啊,抓取和传递所传输的音信。

恐怕挺赏心悦指标!

因为PHP暗中认可是不帮助curl功效的,因而只要要用curl的话,首先须要在php.ini中打开该意义,即去掉 ;extension= php_curl.dll 前边的分行,然后保留后重启apache/iis就好了。

5、达成模拟Cookie等:登入的事态下技巧够操作一些天性。

curl有哪些用?

主导语法:

怎样利用CU本田CR-VL功效

用php ,curl主假诺抓取数据,当然我们能够用其他的方式来抓取,比方fsockopen,file_get_contents等。不过只好抓那个能一向访谈的页面,若是要抓取有页面访谈调节的页面,也许是登录以往的页面就相比勤奋了。

复制代码 代码如下:

暗中同意景况加PHP是不援助CU奥迪Q7L的,须求在php.ini中展开该意义

curl使用

$my_curl = curl_init();    //开始化一个curl对象
curl_setopt($my_curl, CURLOPT_U瑞虎L, "//www.jb51.net");    //设置你要求抓取的U牧马人L
curl_setopt($my_curl,CURLOPT_RETUOdysseyNTRANSFECR-V,1);    //设置是将结果保存到字符串中依旧出口到荧屏上,1意味着将结果保存到字符串
$str = curl_exec($curl);    //推行乞求
echo $str;    //输出抓取的结果
curl_close($curl);    //关闭url请求

;extension=php_curl.dll前边的分部去掉

curl做为 PHP 多个很常用的下载形式,这里大约的应用办法;

 

1  整个操作进程中首先步是用cur_init()函数举办早先化

// 初始化一个 curl
$ch = curl_init();
// 设置请求的 url
curl_setopt($ch, CURLOPT_URL, $url);
// 
curl_setopt($ch, CURLOPT_HEADER, 0);
// 不直接输出,而是通过 curl_exec 返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (false === ($stream = curl_exec($ch))) {
 throw new Exception(curl_errno($ch));
}
curl_close($ch);
return $stream;

您也许感兴趣的稿子:

  • php使用curl访谈https示例分享
  • php中file_get_content 和curl以及fopen 效用分析
  • PHP curl 抓取AJAX异步内容示例
  • 使用php方法curl抓取AJAX异步内容思路分析及代码分享
  • PHP curl完结抓取302跳转后页面包车型客车演示
  • PHP中行使CU奔驰M级L模拟登陆并获取数据实例
  • PHP扩充CURubiconL的用法详解
  • PHP函数分享之curl格局获得数据、模拟登录、POST数据
  • php中curl、fsocket、file_get_content多少个函数的运用相比
  • PHP CU路虎极光L获取重回值的不二秘诀
  • PHP使用CUSportageL获取302跳转后的地址实例
  • php之curl完毕http与https乞请的点子
$curl = curl_init(‘www.jb51.net')

地点是一个很简单的例子,假若三个文书相当的大,那么用户就须求等待十分长的年月,那时候我们就应当加上进度条的作用:

2.用curl_setopt()函数举办设置选项。

class Request
{
 protected $bar;
 // 是否下载完成
 protected $downloaded = false;
 public function __construct()
 {
 // 初始化一个进度条
 $this->bar = new CliProgressBar(100);
 $this->bar->display();
 $this->bar->setColorToRed();
 }

 function download($url)
 {
 $ch = curl_init();
 // 从配置文件中获取根路径
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
 // 开启进度条
 curl_setopt($ch, CURLOPT_NOPROGRESS, 0);
 // 进度条的触发函数
 curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, 'progress');
 // ps: 如果目标网页跳转,也跟着跳转
 // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 if (false === ($stream = curl_exec($ch))) {
  throw new Exception(curl_errno($ch));
 }
 curl_close($ch);
 return $stream;
 }

 /**
 * 进度条下载.
 *
 * @param $ch
 * @param $countDownloadSize 总下载量
 * @param $currentDownloadSize 当前下载量
 * @param $countUploadSize 
 * @param $currentUploadSize
 */
 public function progress($ch, $countDownloadSize, $currentDownloadSize, $countUploadSize, $currentUploadSize)
 {
  // 等于 0 的时候,应该是预读资源不等于0的时候即开始下载
  // 这里的每一个判断都是坑,多试试就知道了
 if (0 === $countDownloadSize) {
  return false;
 }
 // 有时候会下载两次,第一次很小,应该是重定向下载
 if ($countDownloadSize > $currentDownloadSize) {
  $this->downloaded = false;
  // 继续显示进度条
 }
 // 已经下载完成还会再发三次请求
 elseif ($this->downloaded) {
  return false;
 }
 // 两边相等下载完成并不一定结束,
 elseif ($currentDownloadSize === $countDownloadSize) {
  return false;
 }

 // 开始计算
 $bar = $currentDownloadSize / $countDownloadSize * 100;
 $this->bar->progress($bar);
 }
}
(new Request)->download('http://www.shiguopeng.cn/database.sql');

3.设置后,举行推行工作 curl_exec($curl);

本文由68399皇家赌场发布于呼叫中心培训课程,转载请注明出处:利用Curl下载文件实时进度条显示的实现,PHP扩展

关键词: 68399皇家赌场

最火资讯