php远程下载类分享__第1页
php远程下载类分享__第2页
php远程下载类分享__第3页
php远程下载类分享__第4页
php远程下载类分享__第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、php远程下载类分享_ 本文实例为大家分享了php远程下载类,如下 ?php /* * 下载远程文件类支持断点续传 */ class HttpDownload private $m_url = ; private $m_urlpath = ; private $m_scheme = http; private $m_host = ; private $m_port = 80; private $m_user = ; private $m_pass = ; private $m_path = /; private $m_query = ; private $m_fp = ; private $m

2、_error = ; private $m_httphead = ; private $m_html = ; /* * 初始化 */ public function PrivateInit($url) $urls = ; $urls = parse_url($url); $this-m_url = $url; if(is_array($urls) $this-m_host = $urlshost; if(!empty($urlsscheme) $this-m_scheme = $urlsscheme; if(!empty($urlsuser) $this-m_user = $urlsuser;

3、 if(!empty($urlspass) $this-m_pass = $urlspass; if(!empty($urlsport) $this-m_port = $urlsport; if(!empty($urlspath) $this-m_path = $urlspath; $this-m_urlpath = $this-m_path; if(!empty($urlsquery) $this-m_query = $urlsquery; $this-m_urlpath .= ?.$this-m_query; /* * 打开指定网址 */ function OpenUrl($url) #重

4、设各参数 $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()

5、; /* * 获得某操作错误的缘由 */ public function printError() echo 错误信息:.$this-m_error; echo 具体返回头:br; foreach($this-m_httphead as $k=$v) echo $k = $v brrn; /* * 判别用Get方法发送的头的应答结果是否正确 */ public function IsGetOK() if( ereg(2,$this-GetHead(http-state) ) return true; else $this-m_error .= $this-GetHead(http-state)

6、. - .$this-GetHead(http-describe).br; return false; /* * 看看返回的网页是否是text类型 */ public function IsText() if (ereg(2,$this-GetHead(http-state) eregi(text,$this-GetHead(content-type) return true; else $this-m_error .= 内容为非文本类型br; return false; /* * 推断返回的网页是否是特定的类型 */ public function IsContentType($ctype)

7、 if (ereg(2,$this-GetHead(http-state) $this-GetHead(content-type) = strtolower($ctype) return true; else $this-m_error .= 类型不对 .$this-GetHead(content-type).br; return false; /* * 用 HTTP 协议下载文件 */ public function SaveToBin($savefilename) if (!$this-IsGetOK() return false; if (feof($this-m_fp) $this-m

8、_error = 连接已经关闭!; return false; $fp = fopen($savefilename,w) or die(写入文件 $savefilename 失败!); while (!feof($this-m_fp) fwrite($fp,fgets($this-m_fp,256); fclose($this-m_fp); return true; /* * 保存网页内容为 Text 文件 */ public function SaveToText($savefilename) if ($this-IsText() $this-SaveBinFile($savefilenam

9、e); else return ; /* * 用 HTTP 协议获得一个网页的内容 */ public function GetHtml() if (!$this-IsText() return ; if ($this-m_html!=) return $this-m_html; if (!$this-m_fp|feof($this-m_fp) return ; while(!feof($this-m_fp) $this-m_html .= fgets($this-m_fp,256); fclose($this-m_fp); return $this-m_html; /* * 开头 HTTP

10、会话 */ public function PrivateStartSession() if (!$this-PrivateOpenHost() $this-m_error .= 打开远程主机出错!; return false; if ($this-GetHead(http-edition)=HTTP/1.1) $httpv = HTTP/1.1; else $httpv = HTTP/1.0; fputs($this-m_fp,GET .$this-m_urlpath. $httpvrn); fputs($this-m_fp,Host: .$this-m_host.rn); fputs($t

11、his-m_fp,Accept: */*rn); fputs($this-m_fp,User-Agent: Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2)rn); #HTTP1.1协议必需指定文档结束后关闭链接,否则读取文档时无法用法feof推断结束 if ($httpv=HTTP/1.1) fputs($this-m_fp,Connection: Closernrn); else fputs($this-m_fp,rn); $httpstas = fgets($this-m_fp,256); $httpstas = split( ,$ht

12、tpstas); $this-m_httpheadhttp-edition = trim($httpstas0); $this-m_httpheadhttp-state = trim($httpstas1); $this-m_httpheadhttp-describe = ; for ($i=2;$icount($httpstas);$i+) $this-m_httpheadhttp-describe .= .trim($httpstas$i); while (!feof($this-m_fp) $line = str_replace(,trim(fgets($this-m_fp,256);

13、if($line = ) break; if (ereg(:,$line) $lines = split(:,$line); $this-m_httpheadstrtolower(trim($lines0) = trim($lines1); /* * 获得一个Http头的值 */ public function GetHead($headname) $headname = strtolower($headname); if (isset($this-m_httphead$headname) return $this-m_httphead$headname; else return ; /* *

14、 打开连接 */ public function PrivateOpenHost() if ($this-m_host=) return false; $this-m_fp = fsockopen($this-m_host, $this-m_port, $errno, $errstr,10); if (!$this-m_fp) $this-m_error = $errstr; return false; else return true; /* * 关闭连接 */ public function Close() fclose($this-m_fp); #两种用法方法,分别如下: #打开网页 $httpdown = new HttpDownload

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论