我有周期。 我打开文件,名称存储在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;
}
但是有问题,在第一次回声之后它没有长期工作。它只打印第一个文件的内容,而不是另一个文件的内容。
答案 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(...);