從FTP獲取自動下載文件的PHP類

jopen 12年前發布 | 2K 次閱讀 Emmabuntüs YouTube
/**
 * 從FTP獲取自動下載文件的PHP類
 * @author yukar ( http://yukar.iteye.com )
 */
class FtpClass{
    private $ftpObj;
    private $ftpHost = "****";    // 服務器地址
    private $ftpPort = ****;            // 服務器端口
    private $ftpUser = "****";        // 用戶名
    private $ftpPassword = "****";        // 口令
    private $localBase = '/your/save/path'; //你存放的目錄
    function __construct($initData=array()){
        if (isset($initData['ftpHost']) && $initData['ftpHost']){
            $this->ftpHost = $initData['ftpHost'];
        }
        if (isset($initData['ftpPort']) && $initData['ftpPort']){
            $this->ftpPort = $initData['ftpPort'];
        }
        if (isset($initData['ftpUser']) && $initData['ftpUser']){
            $this->ftpUser = $initData['ftpUser'];
        }
        if (isset($initData['ftpPassword']) && $initData['ftpPassword']){
            $this->ftpPassword = $initData['ftpPassword'];
        }
        if (isset($initData['localBase']) && $initData['localBase']){
            $this->localBase = $initData['localBase'];
        }
    }

    function ftp_connect(){
        if(!$this->ftpObj){
            $this->ftpObj = ftp_connect($this->ftpHost,$this->ftpPort);    // 連接ftp服務器
            if($this->ftpObj) {
                if(ftp_login($this->ftpObj, $this->ftpUser, $this->ftpPassword)) {    // 登錄
                    return true;
                }else{
                    return false;
                }
            }else {
                return false;
            }
        }
    }

    function ftp_download_file($fileName) {
        //獲取FTP路徑
        $ftpPath = dirname($fileName) . "/";  
        //獲取文件名  
        $selectFile = basename($fileName);    
        // 進入指定路徑
        if(@ftp_chdir($this->ftpObj,$ftpPath)) {            
            //$localBase 如果不存在,新創建目錄,務必確保 有創建權限
            if(!is_dir($this->localBase)){
                mkdir($this->localBase, 0777);
            }
            $toFile = $this->localBase.$fileName;
            if(ftp_get($this->ftpObj, $toFile, $selectFile, FTP_BINARY)) {    //下載指定的FTP文件到指定的本地文件
                return true;
            }else {
                return false;
            }
        }else {
            return false;
        }
    }

    function ftp_quit(){
        if($this->ftpObj){
            ftp_quit($this->ftpObj);
        }
    }

}
調用就更簡單了
$ftpObj = new FtpClass();
$ftpObj->ftp_connect();
$filename = '/config/config.sample.php';
$ftpObj->ftp_download_file($filename);
$ftpObj->ftp_quit();
exit();
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!