从FTP获取自动下载文件的PHP类

/**
 * 从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();

猜你喜欢

转载自yukar.iteye.com/blog/1388912