当前位置:编程学习 > php >>

DedeHttpDown PHP远程下载网页的类,增强版 2013-1-17修改

1)新增远程主机判断,节约服务器资源。避免远程主机不存在的时候仍旧fsockopen,导致的死机占用服务器CPU
 
(2)新增响应401的判断和支持。
 
(3)增加对json返回文本的支持。
 
(4)日志的生成,如果设置了DEBUG_LEVEL且为TRUE则会对每次远程下载做日志。
 
(5)获取字节的限定dataLimit,节约服务器资源。
(6)修改日期:2013-1-17
 
 
如果还有更好的方法建议,可以随时联系我本人。admin@zbphp.com 
 
 
 
[php]  
<?php  
/** 
 * 织梦HTTP下载类 
 * 
 * @version        $Id: dedehttpdown.class.php 1 11:42 2010年7月6日Z tianya $ 
 * @package        DedeCMS.Libraries 
 * @copyright      Copyright (c) 2007 - 2010, DesDev, Inc. 
 * @modify author  admin@zbphp.com 
 * @license        http://help.dedecms.com/usersguide/license.html 
 * @link           http://www.dedecms.com 
 */  
@set_time_limit(0);  
  
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 = '';  
    var $dataLimit = 0;  
    var $m_puthead = '';  
    var $BaseUrlPath = '';  
    var $HomeUrl = '';  
    var $reTry = 0;  
    var $JumpCount = 0;  
  
    /** 
     *  初始化系统 
     * 
     * @access    public 
     * @param     string    $url   需要下载的地址 
     * @return    string 
     */  
    function PrivateInit($url)  
    {  
        if($url=='') {  
            return ;  
        }  
        $urls = '';  
        $urls = @parse_url($url);  
        $this->m_url = $url;  
        if(is_array($urls))  
        {  
            $this->m_host = $urls["host"];  
            if(!emptyempty($urls["scheme"]))  
            {  
                $this->m_scheme = $urls["scheme"];  
            }  
            if(!emptyempty($urls["user"]))  
            {  
                $this->m_user = $urls["user"];  
            }  
            if(!emptyempty($urls["pass"]))  
            {  
                $this->m_pass = $urls["pass"];  
            }  
            if(!emptyempty($urls["port"]))  
            {  
                $this->m_port = $urls["port"];  
            }  
            if(!emptyempty($urls["path"]))  
            {  
                $this->m_path = $urls["path"];  
            }  
            $this->m_urlpath = $this->m_path;  
            if(!emptyempty($urls["query"]))  
            {  
                $this->m_query = $urls["query"];  
                $this->m_urlpath .= "?".$this->m_query;  
            }  
            $this->HomeUrl = $urls["host"];  
            $this->BaseUrlPath = $this->HomeUrl.$urls["path"];  
            $this->BaseUrlPath = preg_replace("/\/([^\/]*)\.(.*)$/","/",$this->BaseUrlPath);  
            $this->BaseUrlPath = preg_replace("/\/$/","",$this->BaseUrlPath);  
        }  
    }  
  
    /** 
     *  重设各参数 
     * 
     * @access    public 
     * @return    void 
     */  
    function ResetAny()  
    {  
        $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 = "";  
    }  
  
    /** 
     *  打开指定网址 
  &nb
补充:Web开发 , php ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,