在周期

时间:2015-07-02 17:31:47

标签: php ftp

我有周期。 我打开文件,名称存储在FTP的数组中。

$contents = ftp_nlist($conn_id, "."); //17

for($i = 0; $i < count($contents); $i++){ //$i < 17
    $filename = 'ftp://name:pass@host/'.$contents[$i];
    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    echo $contents;
}

但是有问题,在第一次回声之后它没有长期工作。它只打印第一个文件的内容,而不是另一个文件的内容。

2 个答案:

答案 0 :(得分:0)

您在循环中重新分配$contents,否定了for循环的条件......

$contents = ftp_nlist($conn_id, "."); //17

for($i = 0; $i < count($contents); $i++){ //$i < 17
    $filename = 'ftp://name:pass@host/'.$contents[$i];
    $handle = fopen($filename, "r");
    $NOTGONNAOVERWRITEcontents = fread($handle, filesize($filename));
    fclose($handle);
    echo $NOTGONNAOVERWRITEcontents;
}

答案 1 :(得分:0)

仅仅从查看代码,我会说问题是行

$contents = fread($handle, filesize($filename));

你用$ handle的内容替换$ contents。执行此操作后,$ contents不再是您期望的列表。

解决方案可以是将fread()的输出转换为另一个变量,如

$thisContent = fread(...);