首页 / PHP / php下载文件的代码分享
php下载文件的代码分享
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php下载文件的代码分享,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5653字,纯文字阅读大概需要9分钟。
内容图文
本文介绍下,在php中,实现下载文件的一些方法与代码,包括系统函数调用、wget、以及socket连接方式下载文件等。有需要的朋友作个参考吧。
在php中实现下载文件,方法大多是如下二种: 一种是使用system、exec等即有的函数调用系统自带的下载工具,比如 wget 之类的来下载文件。 另一种是使用php本身利用Socket来下载文件。 笔者喜欢用第二种方式。 使用Socket下载文件,如果是http协议的文件,必须明白HTTP协议的运行过程,如果是FTP协议的则要了解ftp协议运行过程。 比如HTTP协议访问一个文件: \n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> 使用fopen直接访问远程文件来达到目的,同时又可以访问http,也能访问ftp。 当然,如果按照上面的思路来说,也可以使用ftp的函数库来实现。 使用fopen函数的例子: #! /usr/bin/php 以上代码保存为 download.php 文件,加上可执行属性: chmod +x download.php 执行,注意脚本的路径要正确: #! /usr/local/php/bin/php 使用上面的脚本来下载文件: download.php 远程文件 保存路径 如把Google Talk程序下载到我们的 /tmp 目录下: download.php http://dl.google.com/googletalk/googletalk-setup.exe /tmp/ 如果不出错,等待一会就能够在 /tmp/ 目录下看到 googletalk-setup.exe 文件。 这里分享一个更强的HTTP下载类: /*================= // 织梦Http下载类 =======================*/ class DedeHttpDown { var $m_url = ""; var $m_urlpath = ""; var $m_scheme = "http"; var $m_host = ""; var $m_port = "80"; var $m_user = ""; var $m_pass = ""; var $m_path = "/"; var $m_query = ""; var $m_fp = ""; var $m_error = ""; var $m_httphead = "" ; var $m_html = ""; // //初始化系统 // function PrivateInit($url) { $urls = ""; $urls = @parse_url($url); $this->m_url = $url; if(is_array($urls)) { $this->m_host = $urls["host"]; if(!empty($urls["scheme"])) $this->m_scheme = $urls["scheme"]; if(!empty($urls["user"])){ $this->m_user = $urls["user"]; } if(!empty($urls["pass"])){ $this->m_pass = $urls["pass"]; } if(!empty($urls["port"])){ $this->m_port = $urls["port"]; } if(!empty($urls["path"])) $this->m_path = $urls["path"]; $this->m_urlpath = $this->m_path; if(!empty($urls["query"])) { $this->m_query = $urls["query"]; $this->m_urlpath .= "?".$this->m_query; } } } // //打开指定网址 // function OpenUrl($url) { //重设各参数 $this->m_url = ""; $this->m_urlpath = ""; $this->m_scheme = "http"; $this->m_host = ""; $this->m_port = "80"; $this->m_user = ""; $this->m_pass = ""; $this->m_path = "/"; $this->m_query = ""; $this->m_error = ""; $this->m_httphead = "" ; $this->m_html = ""; $this->Close(); //初始化系统 $this->PrivateInit($url); $this->PrivateStartSession(); } // //获得某操作错误的原因 // function printError() { echo "错误信息:".$this->m_error; echo "具体返回头: 调用示例: 1,下载网页 $httpdown = new DedeHttpDown(); $httpdown->OpenUrl("http://bbs.it-home.org"); echo $httpdown->GetHtml(); $httpdown->Close(); ?> 2,下载图片并保存 $httpdown = new DedeHttpDown(); $httpdown->OpenUrl("http://img.jbxue.com/images/1.jpg"); echo $httpdown->SaveBin("https://www.gxlcms.com/test.jpg"); $httpdown->Close(); echo ""; ?> |
内容总结
以上是互联网集市为您收集整理的php下载文件的代码分享全部内容,希望文章能够帮你解决php下载文件的代码分享所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。