[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のメモリ管理等がうまくいかなくなる、とか
そんなことってありえるんでしょうか?

どちらにしてもできるだけ「普通の(?)」ソースを心がけます・・・。
ありがとうございました。