亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php遠程下載類分享

2024-05-04 23:45:01
字體:
來源:轉載
供稿:網友

這篇文章主要為大家分享了php遠程下載類,用戶可以將下載文件到主機,感興趣的小伙伴們可以參考一下

本文實例為大家分享了php遠程下載類,如下
 

  1. <?php  
  2. /**  
  3. * 下載遠程文件類支持斷點續傳  
  4. */ 
  5. class HttpDownload {  
  6. private $m_url = "";  
  7. private $m_urlpath = "";  
  8. private $m_scheme = "http";  
  9. private $m_host = "";  
  10. private $m_port = "80";  
  11. private $m_user = "";  
  12. private $m_pass = "";  
  13. private $m_path = "/";  
  14. private $m_query = "";  
  15. private $m_fp = "";  
  16. private $m_error = "";  
  17. private $m_httphead = "" ;  
  18. private $m_html = "";  
  19.   
  20. /**  
  21. * 初始化  
  22. */ 
  23. public function PrivateInit($url){  
  24. $urls = "";  
  25. $urls = @parse_url($url);  
  26. $this->m_url = $url;  
  27. if(is_array($urls)) {  
  28. $this->m_host = $urls["host"];  
  29. if(!emptyempty($urls["scheme"])) $this->m_scheme = $urls["scheme"];  
  30. if(!emptyempty($urls["user"])) $this->m_user = $urls["user"];  
  31. if(!emptyempty($urls["pass"])) $this->m_pass = $urls["pass"];  
  32. if(!emptyempty($urls["port"])) $this->m_port = $urls["port"];  
  33. if(!emptyempty($urls["path"])) $this->m_path = $urls["path"];  
  34. $this->m_urlpath = $this->m_path;  
  35. if(!emptyempty($urls["query"])) {  
  36. $this->m_query = $urls["query"];  
  37. $this->m_urlpath .= "?".$this->m_query;  
  38. }  
  39. }  
  40. }  
  41.   
  42. /**  
  43. * 打開指定網址  
  44. */ 
  45. function OpenUrl($url) {  
  46. #重設各參數  
  47. $this->m_url = "";  
  48. $this->m_urlpath = "";  
  49. $this->m_scheme = "http";  
  50. $this->m_host = "";  
  51. $this->m_port = "80";  
  52. $this->m_user = "";  
  53. $this->m_pass = "";  
  54. $this->m_path = "/";  
  55. $this->m_query = "";  
  56. $this->m_error = "";  
  57. $this->m_httphead = "" ;  
  58. $this->m_html = "";  
  59. $this->Close();  
  60. #初始化系統  
  61. $this->PrivateInit($url);  
  62. $this->PrivateStartSession();  
  63. }  
  64.   
  65. /**  
  66. * 獲得某操作錯誤的原因  
  67. */ 
  68. public function printError() {  
  69. echo "錯誤信息:".$this->m_error;  
  70. echo "具體返回頭:<br>";  
  71. foreach($this->m_httphead as $k=>$v) {  
  72. echo "$k => $v <br>/r/n";  
  73. }  
  74. }  
  75.   
  76. /**  
  77. * 判別用Get方法發送的頭的應答結果是否正確  
  78. */ 
  79. public function IsGetOK() {  
  80. ifereg("^2",$this->GetHead("http-state")) ) {  
  81. return true;  
  82. else {  
  83. $this->m_error .= $this->GetHead("http-state")." - ".$this->GetHead("http-describe")."<br>";  
  84. return false;  
  85. }  
  86. }  
  87.   
  88. /**  
  89. * 看看返回的網頁是否是text類型  
  90. */ 
  91. public function IsText() {  
  92. if (ereg("^2",$this->GetHead("http-state")) && eregi("^text",$this->GetHead("content-type"))) {  
  93. return true;  
  94. else {  
  95. $this->m_error .= "內容為非文本類型<br>";  
  96. return false;  
  97. }  
  98. }  
  99. /**  
  100. * 判斷返回的網頁是否是特定的類型  
  101. */ 
  102. public function IsContentType($ctype) {  
  103. if (ereg("^2",$this->GetHead("http-state")) && $this->GetHead("content-type") == strtolower($ctype)) {  
  104. return true;  
  105. else {  
  106. $this->m_error .= "類型不對 ".$this->GetHead("content-type")."<br>";  
  107. return false;  
  108. }  
  109. }  
  110.   
  111. /**  
  112. * 用 HTTP 協議下載文件  
  113. */ 
  114. public function SaveToBin($savefilename) {  
  115. if (!$this->IsGetOK()) return false;  
  116. if (@feof($this->m_fp)) {  
  117. $this->m_error = "連接已經關閉!";  
  118. return false;  
  119. }  
  120. $fp = fopen($savefilename,"w"or die("寫入文件 $savefilename 失??!");  
  121. while (!feof($this->m_fp)) {  
  122. @fwrite($fp,fgets($this->m_fp,256));  
  123. }  
  124. @fclose($this->m_fp);  
  125. return true;  
  126. }  
  127.   
  128. /**  
  129. * 保存網頁內容為 Text 文件  
  130. */ 
  131. public function SaveToText($savefilename) {  
  132. if ($this->IsText()) {  
  133. $this->SaveBinFile($savefilename);  
  134. else {  
  135. return "";  
  136. }  
  137. }  
  138.   
  139. /**  
  140. * 用 HTTP 協議獲得一個網頁的內容  
  141. */ 
  142. public function GetHtml() {  
  143. if (!$this->IsText()) return "";  
  144. if ($this->m_html!=""return $this->m_html;  
  145. if (!$this->m_fp||@feof($this->m_fp)) return "";  
  146. while(!feof($this->m_fp)) {  
  147. $this->m_html .= fgets($this->m_fp,256);  
  148. }  
  149. @fclose($this->m_fp);  
  150. return $this->m_html;  
  151. }  
  152.   
  153. /**  
  154. * 開始 HTTP 會話  
  155. */ 
  156. public function PrivateStartSession() {  
  157. if (!$this->PrivateOpenHost()) {  
  158. $this->m_error .= "打開遠程主機出錯!";  
  159. return false;  
  160. }  
  161. if ($this->GetHead("http-edition")=="HTTP/1.1") {  
  162. $httpv = "HTTP/1.1";  
  163. else {  
  164. $httpv = "HTTP/1.0";  
  165. }  
  166. fputs($this->m_fp,"GET ".$this->m_urlpath." $httpv/r/n");  
  167. fputs($this->m_fp,"Host: ".$this->m_host."/r/n");  
  168. fputs($this->m_fp,"Accept: */*/r/n");  
  169. fputs($this->m_fp,"User-Agent: Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2)/r/n");  
  170. #HTTP1.1協議必須指定文檔結束后關閉鏈接,否則讀取文檔時無法使用feof判斷結束  
  171. if ($httpv=="HTTP/1.1") {  
  172. fputs($this->m_fp,"Connection: Close/r/n/r/n");  
  173. else {  
  174. fputs($this->m_fp,"/r/n");  
  175. }  
  176. $httpstas = fgets($this->m_fp,256);  
  177. $httpstas = split(" ",$httpstas);  
  178. $this->m_httphead["http-edition"] = trim($httpstas[0]);  
  179. $this->m_httphead["http-state"] = trim($httpstas[1]);  
  180. $this->m_httphead["http-describe"] = "";  
  181. for ($i=2;$i<count($httpstas);$i++) {  
  182. $this->m_httphead["http-describe"] .= " ".trim($httpstas[$i]);  
  183. }  
  184. while (!feof($this->m_fp)) {  
  185. $line = str_replace("/"","",trim(fgets($this->m_fp,256)));  
  186. if($line == ""break;  
  187. if (ereg(":",$line)) {  
  188. $lines = split(":",$line);  
  189. $this->m_httphead[strtolower(trim($lines[0]))] = trim($lines[1]);  
  190. }  
  191. }  
  192. }  
  193.   
  194. /**  
  195. * 獲得一個Http頭的值  
  196. */  
  197. public function GetHead($headname) {  
  198. $headname = strtolower($headname);  
  199. if (isset($this->m_httphead[$headname])) {  
  200. return $this->m_httphead[$headname];  
  201. else {  
  202. return "";  
  203. }  
  204. }  
  205.   
  206. /**  
  207. * 打開連接  
  208. */ 
  209. public function PrivateOpenHost() {  
  210. if ($this->m_host==""return false;  
  211. $this->m_fp = @fsockopen($this->m_host, $this->m_port, &$errno, &$errstr,10);  
  212. if (!$this->m_fp){  
  213. $this->m_error = $errstr;  
  214. return false;  
  215. else {  
  216. return true;  
  217. }  
  218. }  
  219.   
  220. /**  
  221. * 關閉連接  
  222. */ 
  223. public function Close(){  
  224. @fclose($this->m_fp);  
  225. }  
  226. }  
  227.   
  228. #兩種使用方法,分別如下:  
  229.   
  230. #打開網頁  
  231. $httpdown = new HttpDownload();  
  232. $httpdown->OpenUrl("http://www.google.com.hk");  
  233. echo $httpdown->GetHtml();  
  234. $httpdown->Close();  
  235.   
  236.   
  237. #下載文件  
  238. $file = new HttpDownload(); # 實例化類  
  239. $file->OpenUrl("http://dldir1.qq.com/qqfile/qq/QQ8.2/17724/QQ8.2.exe"); # 遠程文件地址  
  240. $file->SaveToBin("qq.exe"); # 保存路徑及文件名  
  241. $file->Close(); # 釋放資源 

以上就是本文的全部內容,希望對大家的學習有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久亚洲精品成人网小说| 日韩成人中文字幕在线观看| 91久久国产综合久久91精品网站| 欧美日韩国产va另类| www高清在线视频日韩欧美| 亚洲精品视频中文字幕| 久热精品在线视频| 成人亚洲综合色就1024| 欧美尤物巨大精品爽| 精品人伦一区二区三区蜜桃网站| 欧美精品videossex88| 欧美性黄网官网| 欧美中文字幕第一页| www.久久草.com| 欧美黄网免费在线观看| 美日韩精品视频免费看| 国产欧美韩国高清| 国产91在线高潮白浆在线观看| 亚洲国产精品嫩草影院久久| 欧美久久精品一级黑人c片| 欧美精品久久一区二区| 日本欧美国产在线| 亚洲wwwav| 精品人伦一区二区三区蜜桃免费| 国产综合久久久久久| 九九热精品在线| 伊人男人综合视频网| 狠狠色狠色综合曰曰| 欧美日韩一区二区三区在线免费观看| 91天堂在线观看| 91香蕉国产在线观看| 88国产精品欧美一区二区三区| 日韩av在线一区| 欧美日韩国产二区| 2018日韩中文字幕| 国产精品电影在线观看| 欧美特黄级在线| 国产精品99久久久久久久久| 国产精品va在线播放| 91精品久久久久久久久久入口| 亚洲www在线观看| 成人国产精品久久久久久亚洲| 国产性猛交xxxx免费看久久| 欧美高清在线观看| 亚洲а∨天堂久久精品喷水| 日本亚洲欧美三级| 欧美第一黄色网| 亚洲女人天堂色在线7777| 日韩精品视频观看| 97在线免费观看| 在线播放日韩专区| 欧美精品福利视频| 亚洲精品久久7777777| 国产成人在线视频| 欧美中文字幕在线观看| 国产999视频| 大量国产精品视频| 日韩男女性生活视频| 亚洲日本aⅴ片在线观看香蕉| 久久色免费在线视频| 日韩av电影手机在线| 98视频在线噜噜噜国产| 亚洲精品免费在线视频| 欧美日韩中国免费专区在线看| 北条麻妃99精品青青久久| 精品综合久久久久久97| 91av在线免费观看| 日韩视频免费大全中文字幕| 久久视频免费观看| 成人久久久久爱| 九九精品视频在线| 日韩在线观看视频免费| 2019亚洲日韩新视频| 国产亚洲精品久久久| 欧美性xxxx极品hd欧美风情| 夜夜狂射影院欧美极品| 久久久久久久爱| 狠狠做深爱婷婷久久综合一区| 欧美视频在线免费| 欧洲精品毛片网站| 久久久免费电影| 国产成人一区二区三区| 欧美国产激情18| 国产精品丝袜久久久久久高清| 久久久亚洲精品视频| 91精品久久久久久久久久入口| 欧美激情一区二区久久久| 欧美一区三区三区高中清蜜桃| 亚洲欧美一区二区精品久久久| 91精品中文在线| 91国内免费在线视频| 国产精品网红福利| 日韩欧美一区二区三区久久| 国产一区二区三区直播精品电影| 亚洲美女视频网| 日日噜噜噜夜夜爽亚洲精品| 亚洲色图五月天| 中文字幕日韩在线视频| 欧美激情亚洲另类| 欧美激情欧美激情在线五月| 亚洲九九九在线观看| 久久精品国产久精国产思思| 亚洲欧美日韩国产中文专区| 亲子乱一区二区三区电影| 日韩在线视频线视频免费网站| 隔壁老王国产在线精品| 97精品久久久中文字幕免费| 久久久久久久一| 午夜精品三级视频福利| 国产成人在线一区| 亚洲欧美在线一区| 4438全国成人免费| 亚洲午夜av久久乱码| 国产日韩在线视频| 亚洲一区亚洲二区| 浅井舞香一区二区| 在线看日韩欧美| 日本精品视频在线播放| 国产999精品久久久影片官网| 97免费视频在线| 欧美一级片在线播放| 国产精品免费观看在线| 992tv成人免费视频| 国产成人精品在线播放| 国产亚洲精品综合一区91| 色悠悠久久88| 精品国产91乱高清在线观看| 亚洲视频在线免费看| 伊人久久久久久久久久久| 伊人亚洲福利一区二区三区| 久久91亚洲精品中文字幕奶水| 高清亚洲成在人网站天堂| 少妇高潮 亚洲精品| 81精品国产乱码久久久久久| 国产精彩精品视频| 亚洲精品资源在线| 91禁国产网站| 久久久精品久久久久| 国产亚洲一区二区精品| 韩曰欧美视频免费观看| 欧美激情女人20p| 国产成人精品一区二区在线| 日韩电影第一页| 亚洲情综合五月天| 国产综合在线观看视频| 久久五月天综合| 北条麻妃99精品青青久久| 亚洲国产日韩欧美在线图片| 91国产中文字幕| 国产精品草莓在线免费观看| 欧美激情2020午夜免费观看| 国产精品黄页免费高清在线观看| 成年人精品视频| 久久久女人电视剧免费播放下载| 久久视频国产精品免费视频在线| 一本色道久久88亚洲综合88| 福利一区福利二区微拍刺激| 国产成人精品一区二区三区| 亚洲精品91美女久久久久久久| 国产午夜精品全部视频在线播放| 91精品国产电影| 亚洲欧美制服另类日韩| 日韩av男人的天堂| 亚洲国产精品成人精品|