日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

如何獲取Ftp服務器上的文件

  • 可以通過賬號密碼,使用Xftp進行鏈接

 

XFtp連接

  • 通過代碼獲取,本文主要是通過php代碼獲取Ftp上的文件,并且去重。

    private $hostname    = ''; \地址
    private $username    = '';  
    private $password    = '';
    private $port        = 21;
    private $conn_id     = FALSE;
     /**
     * FTP登陸
     *
     * @access  private
     * @return boolean
     */
    private function _login()
    {
        return @ftp_login($this->conn_id, $this->username, $this->password);
    }
    
      /**
     * 關閉FTP
     *
     * @access  public
     * @return boolean
     */
    public function close()
    {
        if (!$this->_isconn()) {
            return FALSE;
        }

        return @ftp_close($this->conn_id);
    }
    
      /**
     * 判斷con_id
     *
     * @access  private
     * @return boolean
     */
    private function _isconn()
    {
        if (!is_resource($this->conn_id)) {
            if ($this->debug === TRUE) {
                $this->_error("ftp_no_connection");
            }
            return FALSE;
        }
        return TRUE;
    }
    
    /**
     * 下載
     *
     * @access  public
     * @param  string  遠程目錄標識(ftp)
     * @param string 本地目錄標識
     * @param string 下載模式 auto || ascii 
     * @return boolean
     */
    public function download($remotepath, $localpath, $mode = 'auto')
    {
        if (!$this->_isconn()) {
            return FALSE;
        }
        $mode = ($mode == 'ascii') ? FTP_ASCII : FTP_BINARY;

        $result = @ftp_get($this->conn_id, $localpath, $remotepath, $mode);

        if ($result === FALSE) {
            if ($this->debug === TRUE) {
                $this->_error("ftp_unable_to_download:localpath[" . $localpath . "]-remotepath[" . $remotepath . "]");
            }
            return FALSE;
        }
        return TRUE;
    }
    
     /**
     * 獲取目錄文件列表
     *
     * @access  public
     * @param  string  目錄標識(ftp)
     * @return array
     */
    public function filelist($path = '.')
    {
        if (!$this->_isconn()) {
            return FALSE;
        }
        return ftp_nlist($this->conn_id, $path);
    }
    

以上是ftp一些基礎操作,連接,獲取文件列表,下載文件,需要獲取代碼可以私信我獲取,

接下來需要進行獲取文件操作,并且去除重復的

  1. 獲取本地文件
  2. 獲取遠程文件
  3. 對比本地沒有的文件并且下載
  4. 對下載的文件進行相關操作
    /**
     * 獲取遠程文件列表
     */
    private function getRemoteFileList($path, $config)
    {
        $this->ftp = new Ftp($config);
        $res = $this->ftp->connect($config);
        if ($res) {
            $fileArr = array();
            $list = $this->listFtpDir($path, $fileArr);
            $this->ftp->close();
            return $list;
        }
        return false;
    }

    private function listFtpDir($dir, &$fileArr)
    {
        $data = $this->ftp->filelist($dir);
        if (!is_array($data)) {
            return;
        }
        foreach ($data as $value) {
            if ($this->is_json_file($value)) {
                $fileArr[] = $value;
            } else {
                $this->listFtpDir($value, $fileArr);
            }
        }
        return $fileArr;
    }
    
     public function file($dataDir)
    {
        //獲取本地文件列表
        $localFileList = $this->getBrLocalFileList($dataDir, 'FLIE/');
        if (count($localFileList) > 0) {
            foreach ($localFileList as $key => $value) {
                $localFileList[$key] = str_replace(self::FTP_FILE_DIR, '', $value);
            }
        }
        //獲取遠程文件列表
        $remoteFileList = $this->getBrRemoteFileList($dataDir, 'FLIE');
        //獲取本地沒有的文件列表
        $remoteArr = array();
        if (count($localFileList) > 0) {
            foreach ($remoteFileList as $key => $value) {
                if (!in_array($value, $localFileList)) {
                    $remoteArr[] = $value;
                }
            }
        } else {
            $remoteArr = $remoteFileList;
        }
        //下載文件,對于本地有的不會進行二次下載,上面方法已經過濾
        然后對文件需要的操作,
        
    }
  
    /**
     * 下載遠程文件
     */
    private function downRemote2LocalWget($localFtpDir, $list, $config)
    {
        $this->ftp = new ftp($config);
        $this->ftp->connect();
        foreach ($list as $value) {
            $dir = $localFtpDir . '/' . substr($value, 0, strripos($value, '/'));
            if (!is_dir($dir)) mkdir($dir, 0777, true);
            //本地存在則刪除
            if (is_file($localFtpDir . '/' . $value)) {
                unlink($localFtpDir . '/' . $value);
            }
            if (!is_file($localFtpDir . '/' . $value)) {
                $filesize = $this->ftp->ftpfilesize($value);
                if (!$filesize) {
                    echo '服務端文件為空!' . "n";
                } else {
                    $re = $this->ftp->download($value, $dir . '/' . substr($value, strripos($value, '/') + 1, strlen($value) - 1));
                    if ($re) {
                        echo '下載' . $value . '成功!' . "n";
                    } else {
                        echo '下載' . $value . '失敗!' . "n";
                    }
                }
            }
        }
        $this->ftp->close();
    }
    

上面是FTP下載文件一些基本操作,只貼了部分代碼。如有出入,可以后臺聯系我,歡迎指正。

分享到:
標簽:PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定