PHP の ftp 処理

  ディレクトリとファイル一覧



  
<?

$ftp_server="jf.land.to"; 
$ftp_user="r205"; 
$ftp_pass="********"; 
$base_dir = "/public_html";

$conn = ftp_connect($ftp_server);
if (!$conn) {
	die('接続できません');
}

$result = @ftp_login($conn, $ftp_user, $ftp_pass); 
if (!$result) {
	die('ログインできません');
}

// パッシブモードをオン
ftp_pasv($conn, TRUE);

// 詳細リスト取得
$list = ftp_rawlist( $conn, $base_dir );
// 一覧用配列
$dir = array();
$file = array();

// 詳細リストの数
$max = count($list);
for( $i = 0; $i < $max; $i++ ) {
	// ディレクトリの場合
	if ( substr( $list[$i], 0, 1 ) == 'd' ) {
		// 配列作成
		$data = explode( " ", $list[$i] );
		// 一番最後が名前
		$target = array_pop( $data );
		if ( $target != '.' && $target != '..' ) {
			$dir[] = $target;
		}
	}
	// ファイルの場合
	else {
		// 配列作成
		$data = explode( " ", $list[$i] );
		// 一番最後が名前
		$target = array_pop( $data );
		$file[] = $target;
	}
}

ftp_close($conn);

var_dump($dir);
var_dump($file);

?>
  



  指定ディレクトリ以下の全てのファイル



タイムアウトに注意して下さい

  
<?

$ftp_server="jf.land.to"; 
$ftp_user="r205"; 
$ftp_pass="********"; 
$base_dir = "/public_html/sb/lightbox";

$conn = ftp_connect($ftp_server);
if (!$conn) {
	die('接続できません');
}

$result = @ftp_login($conn, $ftp_user, $ftp_pass); 
if (!$result) {
	die('ログインできません');
}

// パッシブモードをオン
ftp_pasv($conn, TRUE);

// 詳細リスト取得
$list = ftp_rawlist( $conn, $base_dir );
// 一覧用配列
$dir = array();
$file = array();

// 詳細リストの数
$max = count($list);
for( $i = 0; $i < $max; $i++ ) {
	// ディレクトリの場合
	if ( substr( $list[$i], 0, 1 ) == 'd' ) {
		// 配列作成
		$data = explode( " ", $list[$i] );
		// 一番最後が名前
		$target = array_pop( $data );
		if ( $target != '.' && $target != '..' ) {
			$dir[] = $base_dir . '/' . $target;
		}
	}
	// ファイルの場合
	else {
		// 配列作成
		$data = explode( " ", $list[$i] );
		// 一番最後が名前
		$target = array_pop( $data );
		$file[] = $base_dir . '/' . $target;
	}
}

for( $pos = 0; $pos < count($dir); $pos++ ) {
	$base_dir = $dir[$pos];
	$list = ftp_rawlist( $conn, $base_dir );

	$max = count($list);
	for( $i = 0; $i < $max; $i++ ) {
		// ディレクトリの場合
		if ( substr( $list[$i], 0, 1 ) == 'd' ) {
			// 配列作成
			$data = explode( " ", $list[$i] );
			// 一番最後が名前
			$target = array_pop( $data );
			if ( $target != '.' && $target != '..' ) {
				$dir[] = $base_dir . '/' . $target;
			}
		}
		// ファイルの場合
		else {
			// 配列作成
			$data = explode( " ", $list[$i] );
			// 一番最後が名前
			$target = array_pop( $data );
			$file[] = $base_dir . '/' . $target;
		}
	}
}


ftp_close($conn);

var_dump($dir);
var_dump($file);

?>
  



  一括パーミッション

PHP の cli バージョンを使ってコマンドプロンプトから実行します

php4
  
@ECHO OFF
set PHP_BIN=c:\php\cli\php.exe
%PHP_BIN% ftp_act.php
pause
  

php5
  
@ECHO OFF
set PHP_BIN=c:\php\php.exe
%PHP_BIN% ftp_act.php
pause
  

ftp_act.php
  
<?
$ftp_server="jf.land.to"; 
$ftp_user="r205"; 
$ftp_pass="********"; 
$base_dir = "/public_html/sb/lightbox/";

// 0777 
$ftp_file[0]= $base_dir . "lock/,777";
$ftp_file[1]= $base_dir . "data/,777";
$ftp_file[2]= $base_dir . "log/,777";
$ftp_file[3]= $base_dir . "img/,777";
$ftp_file[4]= $base_dir . "template/,777";

// 0755 
$ftp_file[5]= $base_dir . "sb.cgi,755";
$ftp_file[6]= $base_dir . "admin.cgi,755";
$ftp_file[7]= $base_dir . "cnt.cgi,755";
$ftp_file[8]= $base_dir . "mb.cgi,755";

// 0666 
$ftp_file[9]= $base_dir . "index.html,666";
$ftp_file[10]= $base_dir . "style.css,666";

$conn=ftp_connect($ftp_server);
if (!$conn) {
	die('接続できません' . "\n");
}

$result=@ftp_login($conn, $ftp_user, $ftp_pass); 
if (!$result) {
	die('ログインできません' . "\n");
}

ftp_pasv($conn, true);

$max = count($ftp_file);

for( $i = 0; $i < 11; $i++ ) {
	usleep(100000);
	$data = explode ( ",", $ftp_file[$i] );
	$chmod_cmd="CHMOD 0{$data[1]} {$data[0]}";
	$chmod=ftp_site($conn, $chmod_cmd);
}

ftp_close($conn);

print "処理が終了しました\n";
?>
  













   SQLの窓    create:2006/08/17  update:2015/09/23   管理者用(要ログイン)





フリーフォントツール

SQLの窓ツール

SQLの窓フリーソフト

写真素材

一般ツールリンク

SQLの窓

フリーソフト

JSライブラリ