Php 循环打开FTP文件

Php 循环打开FTP文件,php,ftp,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

我要骑自行车。 我正在打开文件名存储在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;
}
$contents=ftp\u nlist($conn\u id,“.”)//17
对于($i=0;$i

但有一个问题是,在第一次回声之后,它就不再工作了。它只打印第一个文件的内容,而不是另外16个文件的内容。

您在循环中重新分配了
$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;
}
$contents=ftp\u nlist($conn\u id,“.”)//17
对于($i=0;$i
仅从代码来看,我会说问题在于线路

$contents = fread($handle, filesize($filename));
在这里,您可以将$contents替换为$handle的内容。完成此操作后,$contents不再是您期望的列表

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

$thisContent = fread(...);

我用$file=file\u get\u contents(')解决了这个问题;echo$文件;