茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    php遠(yuǎn)程下載類分享
    來源:易賢網(wǎng) 閱讀:1113 次 日期:2016-08-26 15:46:58
    溫馨提示:易賢網(wǎng)小編為您整理了“php遠(yuǎn)程下載類分享”,方便廣大網(wǎng)友查閱!

    本文實(shí)例為大家分享了php遠(yuǎn)程下載類,如下

    <?php

    /**

    * 下載遠(yuǎn)程文件類支持?jǐn)帱c(diǎn)續(xù)傳

    */

    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_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 = $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;

    }

    }

    }

    /**

    * 打開指定網(wǎng)址

    */

    function OpenUrl($url) {

    #重設(shè)各參數(shù)

    $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();

    #初始化系統(tǒng)

    $this->PrivateInit($url);

    $this->PrivateStartSession();

    }

    /**

    * 獲得某操作錯誤的原因

    */

    public function printError() {

    echo "錯誤信息:".$this->m_error;

    echo "具體返回頭:<br>";

    foreach($this->m_httphead as $k=>$v) {

    echo "$k => $v <br>\r\n";

    }

    }

    /**

    * 判別用Get方法發(fā)送的頭的應(yīng)答結(jié)果是否正確

    */

    public function IsGetOK() {

    if( ereg("^2",$this->GetHead("http-state")) ) {

    return true;

    } else {

    $this->m_error .= $this->GetHead("http-state")." - ".$this->GetHead("http-describe")."<br>";

    return false;

    }

    }

    /**

    * 看看返回的網(wǎng)頁是否是text類型

    */

    public function IsText() {

    if (ereg("^2",$this->GetHead("http-state")) && eregi("^text",$this->GetHead("content-type"))) {

    return true;

    } else {

    $this->m_error .= "內(nèi)容為非文本類型<br>";

    return false;

    }

    }

    /**

    * 判斷返回的網(wǎng)頁是否是特定的類型

    */

    public function IsContentType($ctype) {

    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 協(xié)議下載文件

    */

    public function SaveToBin($savefilename) {

    if (!$this->IsGetOK()) return false;

    if (@feof($this->m_fp)) {

    $this->m_error = "連接已經(jīng)關(guān)閉!";

    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;

    }

    /**

    * 保存網(wǎng)頁內(nèi)容為 Text 文件

    */

    public function SaveToText($savefilename) {

    if ($this->IsText()) {

    $this->SaveBinFile($savefilename);

    } else {

    return "";

    }

    }

    /**

    * 用 HTTP 協(xié)議獲得一個網(wǎng)頁的內(nèi)容

    */

    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 會話

    */

    public function PrivateStartSession() {

    if (!$this->PrivateOpenHost()) {

    $this->m_error .= "打開遠(yuǎn)程主機(jī)出錯!";

    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." $httpv\r\n");

    fputs($this->m_fp,"Host: ".$this->m_host."\r\n");

    fputs($this->m_fp,"Accept: */*\r\n");

    fputs($this->m_fp,"User-Agent: Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2)\r\n");

    #HTTP1.1協(xié)議必須指定文檔結(jié)束后關(guān)閉鏈接,否則讀取文檔時無法使用feof判斷結(jié)束

    if ($httpv=="HTTP/1.1") {

    fputs($this->m_fp,"Connection: Close\r\n\r\n");

    } else {

    fputs($this->m_fp,"\r\n");

    }

    $httpstas = fgets($this->m_fp,256);

    $httpstas = split(" ",$httpstas);

    $this->m_httphead["http-edition"] = trim($httpstas[0]);

    $this->m_httphead["http-state"] = trim($httpstas[1]);

    $this->m_httphead["http-describe"] = "";

    for ($i=2;$i<count($httpstas);$i++) {

    $this->m_httphead["http-describe"] .= " ".trim($httpstas[$i]);

    }

    while (!feof($this->m_fp)) {

    $line = str_replace("\"","",trim(fgets($this->m_fp,256)));

    if($line == "") break;

    if (ereg(":",$line)) {

    $lines = split(":",$line);

    $this->m_httphead[strtolower(trim($lines[0]))] = trim($lines[1]);

    }

    }

    }

    /**

    * 獲得一個Http頭的值

    */

    public function GetHead($headname) {

    $headname = strtolower($headname);

    if (isset($this->m_httphead[$headname])) {

    return $this->m_httphead[$headname];

    } else {

    return "";

    }

    }

    /**

    * 打開連接

    */

    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;

    }

    }

    /**

    * 關(guān)閉連接

    */

    public function Close(){

    @fclose($this->m_fp);

    }

    }

    #兩種使用方法,分別如下:

    #打開網(wǎng)頁

    $httpdown = new HttpDownload();

    $httpdown->OpenUrl("http://www.google.com.hk");

    echo $httpdown->GetHtml();

    $httpdown->Close();

    #下載文件

    $file = new HttpDownload(); # 實(shí)例化類

    $file->OpenUrl("http://dldir1.qq.com/qqfile/qq/QQ8.2/17724/QQ8.2.exe"); # 遠(yuǎn)程文件地址

    $file->SaveToBin("qq.exe"); # 保存路徑及文件名

    $file->Close(); # 釋放資源

    以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:php遠(yuǎn)程下載類分享
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026國考·省考課程試聽報(bào)名

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)