[PHP-users 7163] Re: ftp_loginした後の動作

Osamu Shigematsu php-users@php.gr.jp
Fri, 26 Apr 2002 16:48:24 +0900


重松です。こんにちは。

> ftp_login() 〜 ftp_close() の間に書いた処理が
> どうしても正常に動作しないのでご相談させてください。

自分自身に敬語使ってる気がするんですけど。。。

> //ファイルリスト取得
> $i=0;
> $handle = opendir("/tmp");
> while (false !== ($file = readdir($handle))) {
>      if ($file != "." && $file != "..") {
>          $file_list[$i] = $file;
> 	print $file_list[$i]."<BR>\n";		//	----A
> 	$i++;
>      }
> }
> closedir($handle);

上記の結果、配列の中身、確認してますか? print_r() 使えば簡単。
あと、配列の中身の巡回なんかも、普通は foreach 使うと思いますよ。

とりあえず、私なりに書いてみました。(添削お願いに近い感じが。。。)

# 実際に /tmp 使ってる訳じゃないですよね?

$files = array();
if($handle = opendir('/tmp')){
	while($file = readdir($handle)){
		if(is_dir($file)) continue;
		$files[] = $file;
	}
	closedir($handle);
}
print_r($files);

$conn = ftp_connect($server);
if($conn){
	if(ftp_login($conn,$id,$pw)){
		print "connected to $server as $id\n";
		foreach($files as $file){
			$result = ftp_put($conn,basename($file),$file);
			print "file '$file' transfer was ' .
				($result ? 'failed' : 'completed') . "\n";
		}
	ftp_close($conn);
}
print_r($files);

--
Osamu Shigematsu
mailto:shige@ravi.ne.jp