[PHP]FTPサーバからファイルを取得

PHPにおいてFTPサーバへ接続後、
ファイルを取得するメモ書きです。
『[PHP]FTPサーバからファイルの一覧を取得』の続きになります。

ソースコード

<?php
	$ftp_server	= "hogehoge.com";
	$ftp_user	= "test_user";
	$ftp_pass	= "test_pass";

	$ftp_target_dir	= "/test_dir";

	$remote_dir	= "/get_file/";

	$connect_id	= ftp_connect( $ftp_server );

	if( ftp_login( $connect_id , $ftp_user , $ftp_pass ) ) {
		echo 'FTPログイン成功';
	}
	else {
		echo 'FTPログイン失敗';
		ftp_close( $connect_id );
		exit;
	}

	# No.01
	if( ftp_chdir( $connect_id , $ftp_target_dir ) ) {
		echo 'ディレクトリ遷移成功 >>> ' . ftp_pwd( $connect_id );

		# No.02
		if( $ftp_file_list = ftp_nlist( $connect_id , "." ) ) {
			# No.03
			foreach( $ftp_file_list as $ftp_file ) {
				# No.04
				ftp_get( $connect_id , "{$remote_dir}{$ftp_file}" , $ftp_file , FTP_BINARY );
			}
		}
	}
	else {
		echo 'ディレクトリ遷移失敗';
		ftp_close( $connect_id );
		exit;
	}


	ftp_close( $connect_id );
?>

解説

# No.01
PHP関数[ftp_chdir]でカレントディレクトリを遷移します。
ディレクトリ遷移成功時は【TRUE】を、失敗時は【FALSE】を返します。

# No.02
PHP関数[ftp_nlist]を用いて対象ディレクトリ内のファイル一覧を取得します。
『No.01』で対象ディレクトリを遷移しているので
第二引数は現在のディレクトリを指す【.】を指定しています。
成功時はファイルの一覧(array型)を、失敗時は【FALSE】を返します。

# No.03
foreachを用いて対象ディレクトリのファイル一覧をループさせます。

# No.04
PHP関数[ftp_get]を用いて対象ディレクトリ内の全ファイルを取得しています。
第一引数にはサーバにFTPコネクションをしている変数[$connect_id]、
第二引数には取得したファイルの保存先を、
第三引数には取得するファイル名を、
第四引数には転送モードをそれぞれ指定します。
今回の例ではカレントディレクトリを移動してあるのでルートは省略してます。
また、第四引数には【FTP_BINARY】か【FTP_ASCII】を指定できます。


This entry was posted in: PHP. Bookmark the ➜ permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)