[PHP-users 30827] Re: ftp_pwdができてftp_rawlistができません [解決]

Hiroyuki Nakane hn-biz @ zc.wakwak.com
2006年 11月 29日 (水) 13:21:34 JST


中根です。

さわだ様、貴重なアドバイスをいただきありがとうございました。

> - ACTIVEモードで接続できる環境なのかどうかを確認してください
> - あるいは、passiveモードで通信してみてください
>   http://jp2.php.net/ja/ftp_pasv
>
いただいたアドバイスをもとに、ftp_rawlist と ftp_get の前に
-----------------------------ここから
// パッシブモード指定
ftp_pasv ( $ftp_handle, true );
-----------------------------ここまで
を追加したところ、うまくリストを取得できました。
また、ファイルの取得もうまくいきました。
最終的なPHPコードは下記のようになります。

社内サーバのPHPコード
-----------------------------------------ここから
// FTPサーバーに接続
$ftp_handle = ftp_connect ( $ftp_host ) or exit ( "Failed" );

// ログイン
if ( ftp_login ( $ftp_handle, $ftp_user, $ftp_pass ) ) {
	// ディレクトリを移動
	ftp_chdir ( $ftp_handle, $dir );
	// パッシブモード指定		  <追加>
	ftp_pasv ( $ftp_handle, true );	//<追加>
	// ファイルリスト取得
	$filelist = ftp_rawlist ( $ftp_handle, '.' );
	// 表示
	print "ディレクトリ" . ftp_pwd ( $ftp_handle ) . "のリスト\n\n"; //---(1)
	foreach ( $filelist as $value ) {
		print $value . "\n"; //---(2)
	}
	ftp_get ( $ftp_handle, "/home/hoge/newfilename.gz",
"access_log_20061120.gz", FTP_ASCII ); //---(3)
	var_dump ( $filelist ); //---(4)
}

// 切断
ftp_close ( $ftp_handle );
-----------------------------------------ここまで

ftp全般に関していただきましたその他のアドバイスにつきましても、これか
ら学習しいきたいと思います。

取り急ぎお礼とご報告させていただきます。
ありがとうございました。

中根浩之




PHP-users メーリングリストの案内