1stPHP

FTPクライアント

ソース

<?php

/*
以下の順番で実行します

1.FTPサーバーに接続
2."public_html"へディレクトリ変更
3."index.html"を"./backup/index.html"にダウンロードする
4."backup_test"という名前のディレクトリ作成
5."backup_test"へ"./backup/index.html"をアップロードする
6."index_test.html"にファイル名変更
7.FTPサーバーから切断
*/


$server  "FTPサーバーアドレス";
$ftp_id  "ユーザーID";
$user_name "ユーザー名";
$user_pass "パスワード";


//エラー時に終了
function ftp_error($id){
  
ftp_close($id);
  exit(
"スクリプトを終了しました");
}


//FTP 接続をオープンする
$ftp_id ftp_connect($server); 

//FTP 接続でログインする
$result ftp_login($ftp_id$user_name$user_pass); 
if ((!
$ftp_id) || (!$result)) { 
  print 
"FTP接続に失敗しました"."<br />";
  exit;
}

//FTP サーバーのシステムタイプを返す
$sys ftp_systype($ftp_id);
if (!
$sys){
  print 
"システムタイプの取得に失敗しました"."<br />";
}else{
  print 
"$sys<br />";
}


//カレントディレクトリの表示
print ftp_pwd($ftp_id)."<br />";


//ファイル一覧を取得し表示します
$ary ftp_rawlist($ftp_id,".");
foreach (
$ary as $value) {
  print 
$value."<br />";
}


//パッシブモードをオンまたはオフにする
if (!ftp_pasv ($ftp_idtrue)){
  print 
"パッシブモードの変更に失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//ディレクトリ変更
if (!ftp_chdir($ftp_id,'public_html')){
  print 
"ディレクトリ変更に失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//カレントディレクトリの表示
print ftp_pwd($ftp_id)."<br />";


//ファイル一覧を取得し表示します
$ary ftp_rawlist($ftp_id,".");
foreach (
$ary as $value) {
  print 
$value."<br />";
}


//ファイルをダウンロードする
$local_file  "./backup/index.html"//ローカル側のファイル名(ダウンロード先)
$remote_file "index.html";   //サーバー側のファイル名(ダウンロード元)
$mode FTP_ASCII//転送モードは FTP_ASCII か FTP_BINARY
if (!ftp_get ($ftp_id$local_file$remote_file$mode)){
  print 
"ダウンロードに失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//ディレクトリ作成
if (!ftp_mkdir($ftp_id"backup_test")){
  print 
"ディレクトリ作成に失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//ディレクトリ変更
if (!ftp_chdir($ftp_id,'backup_test')){
  print 
"ディレクトリ変更に失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//カレントディレクトリの表示
print ftp_pwd($ftp_id)."<br />";


//ファイルをアップロードする
$local_file  "./backup/index.html"//ローカル側のファイル名(ダウンロード先)
$remote_file "index.html";   //サーバー側のファイル名(ダウンロード元)
$mode FTP_ASCII//転送モードは FTP_ASCII か FTP_BINARY
if (!ftp_put ($ftp_id$remote_file$local_file$mode)){
  print 
"アップロードに失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//ファイル名変更
$from_name "index.html";   //変更元ファイル名
$to_name   "index_test.html";//変更先ファイル名
if (!ftp_rename ($ftp_id$from_name$to_name)){
  print 
"ファイル名変更に失敗しました"."<br />";
  
ftp_error($ftp_id);
}


//FTP接続を閉じる
ftp_close($ftp_id); 




/*
ファイルの削除
ftp_delete(FTPストリーム , ファイル名);
ディレクトリの削除
ftp_rmdir (FTPストリーム , ディレクトリ名);
*/

?>