PHP的ftp操作

1. 连接ftp服务器

false|handle ftp_connect(string $host, int $port);

该函数接收ftp服务器主机名与端口号,端口号可选,返回一个ftp句柄,连接失败返回false

2. 登陆ftp服务器

bool ftp_login(ftp_handle $conn, $user, $pwd);

该函数需要一个ftp的连接句柄,用户名与密码,登陆成功返回true,失败返回false

3. 获取ftp服务器文件的修改时间

timestamp ftp_mdtm(ftp_handle $conn, $remote_file);

4. 从ftp下载文件

ftp_fget($conn, $local_file_handle, $remote_file, FTP_MODEL);

参数介绍:
1. connftpftpconnect2. local_file_handle:本地文件句柄,用于存放从ftp下载下来到文件流
3. $remote:ftp上要下载的文件到路径
4. FTP_MODEL:ftp模式,ASCII模式(FTP_ASCII)、二进制模式(FTP_BINARY)

ASCII模式:用于传输文本文件(文件全由ASCII字符组成)

二进制模式:用于传输其他类型的文件

ftp_get($conn, $local_file, $remote_file, FTP_MODEL);

该函数与ftp_fget()函数功能相同,但是不需要传递本地文件到句柄,只需要传递本地文件到路径即可

5. 上传文件

ftp_fput($conn, $remote_file, $local_file_handle, FTP_MODEL);
ftp_put($conn, $remote_file, $local_file, FTP_MODEL);

6. 关闭连接

ftp_quit($conn);

7. 实例

//定义连接与文件路径等信息
$host = 'ftp.xxx.com';
$user = 'user1';
$password = 'password';
$remote_file = '/logo/1.png';
$local_file = '/Users/xxx/xxx/1.png';

//连接ftp服务器
$conn = ftp_connect($host);
if(!$conn){
    echo 'Error: Could not connect to ftp server
'
; exit; } echo "Connected to $host"; //登陆ftp服务器 $result = @ftp_login($conn, $user, $password); if(!$result){ echo "Error: Could not log on as $user
"
; ftp_quit($conn); exit; } echo "Logged in as $user
"
; //验证本地文件 echo 'Check file time...
'
; //判断本地文件是否存在,如果存在,则判断其与ftp服务器上的文件哪个更新 if(file_exists($local_file)){ $local_time = filemtime($local_file); echo 'Local file last updated '; echo date('Y-m-d H:i:s',$local_time).'
'
; }else{ $local_time = 0; } //获取ftp服务器上文件的最后修改时间,与本地文件的最后修改时间进行对比 $remote_time = ftp_mdtm($conn, $remote_file); if(!($remote_time >= 0)){ echo 'Can\'t access remote file time.
'
; $remote_time = $local_time + 1; }else{ echo 'Remote file last updated '; echo date('Y-m-d H:i:s',$remote_time).'
'
; } if(!($remote_time > $local_time)){ echo 'Local copy is up to date.
'
; exit; } //从ftp服务器下载文件 echo 'Getting file from server...
'
; $fp = fopen($local_file, 'w'); if(!$success = ftp_fget($conn, $fp, $remote_file, FTP_BINARY)){ echo 'Error: Could not download file'; ftp_quit($conn); exit; } //关闭连接 fclose($fp); echo 'File downloaded successfully'; ftp_quit($conn);

你可能感兴趣的:(【语言】,----------PHP)