[PHP-users 7170] Re: ftp_login した後の動作
Shiori Tanianka
php-users@php.gr.jp
Fri, 26 Apr 2002 18:49:28 +0900
谷中です。
ご返答、ありがとうございます。
At 16:48 02/04/26, you wrote:
>重松です。こんにちは。
>
>>//ファイルリスト取得
>>$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 使ってる訳じゃないですよね?
違います。
>$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);
これで正常に動作しました。
ありがとうございました。
にしても、確かに私が以前、書いたソースは「普通でない」「汚い」のは
分かるんですが、文法的には間違ってはいないと思っていたのですが、
それで動作しなくて、foreach使って回すと正常動作する・・・というのは
どういうことなんでしょうね?
汚いソースによって、PHPのメモリ管理等がうまくいかなくなる、とか
そんなことってありえるんでしょうか?
どちらにしてもできるだけ「普通の(?)」ソースを心がけます・・・。
ありがとうございました。