PHPのftp操作
6953 ワード
1.ftpサーバへの接続
この関数はftpサーバーのホスト名とポート番号を受信し、ポート番号はオプションで、ftpハンドルを返し、接続に失敗してfalseを返します.
2.ftpサーバへのログイン
この関数にはftpの接続ハンドルが必要で、ユーザー名とパスワード、ログインに成功してtrueを返し、falseを返すことに失敗しました.
3.ftpサーバファイルを取得する変更時間
4.ftpからファイルをダウンロードする
パラメータ紹介:1.conn:ftp接続ハンドル、ftpconnectで取得2.local_file_handle:ftpからダウンロードしたファイルストリームを格納するローカルファイルハンドル3.$remote:ftpでダウンロードするファイルからパス4.FTP_MODEL:ftpモード、ASCIIモード(FTP_ASCII)、バイナリモード(FTP_BINARY)
ASCIIモード:テキストファイルの転送に使用します(ファイルはすべてASCII文字で構成されています)
バイナリモード:他のタイプのファイルを転送する
この関数はftp_とfget()関数の機能は同じですが、ローカルファイルをハンドルに渡す必要はありません.ローカルファイルをパスに渡すだけです.
5.ファイルのアップロード
6.接続を閉じる
7.例
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.conn:ftp接続ハンドル、ftpconnectで取得2.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);