[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 メーリングリストの案内