如何列出ftp上的所有目录和文件名 找以下递归方面的内容。这种遍历文件夹的操作,基本用递归解决还是比较容易的。写过php遍历ftp文件的东西,不觉得太复杂,根据帮助手册的ftp函数说明就可以搞定了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ftp_rawlist($connect_id,'/',TRUE)就可以递归列出所有文件,如果第一个字母是D就是文件夹 example---------------------------------------------------------------$values = array( "sitename" => "abc.ru", "ftpserver" => "u12345.ftp.masterhost.ru", "ftpuser" => "u12345", "ftppassword" => "mypassword", "remotedir" => "abc.ru/www" );function getAllFilesViaFTP($values){ $beginTime = time(); echo "connecting to ".$values['sitename']."\n"; // set up a connection or die if (!$conn_id = ftp_connect($values['ftpserver'])) return ("can't connect to ".$values['ftpserver']."\n"); // try to login if (!@ftp_login($conn_id, $values['ftpuser'], $values['ftppassword'])) echo "can't login to ".$values['sitename']." with entered ".$ftp_user." and password(...) \n"; // get the file list for $values['remotedir'] $fileList = ftp_rawlist($conn_id, $values['remotedir'], TRUE); // print_r($fileList); $fileList_c = count($fileList); $allFiles = $allFilesCount = $allUseFulFilesCount = null; $currentDir = $values['remotedir']; for ($i=0;$i<$fileList_c;$i++){ // change current dir, if current array element is an empty line if (!$fileList[$i]) $currentDir = $fileList[$i+1]; else{ $allFilesCount++; $fileInfo = list() = explode(" ", $fileList[$i]); // print_r($fileInfo); $fileName = $fileInfo[count($fileInfo) - 1]; if (preg_match("/\.php/", $fileName) or preg_match("/\.htm/", $fileName) or preg_match("/\.html/", $fileName)){ $allUseFulFilesCount++; $allFiles[] = preg_replace("/:/", "", $currentDir)."/".$fileName; } } } // close the connection ftp_close($conn_id); // time $fullTime = time() - $beginTime; $result = array ( "allFilesCount" => $allFilesCount, "allUseFulFilesCount" => $allUseFulFilesCount, "fullTime" => $fullTime, "fileList" => $allFiles ); return $result;}$fileList = getAllFilesViaFTP($values);print_r($fileList); 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【victor0910】截止到2008-06-26 17:08:46的历史汇总数据(不包括此帖):发帖数:6 发帖分:120 结贴数:0 结贴分:0 未结数:6 未结分:120 结贴率:0.00 % 结分率:0.00 % 如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html txt文件中包含空格、<br/>如何原封不动的输出到网页中 php初学登录问题 php在线截图 问下这种传值链接是怎么搞的 Rewrite伪静态的这段正则如何写? 请大家帮忙想想这个功能要怎么完成(题目说不清功能) php+mysql 数据库操作类 文件上传后,怎么让它自动解压缩?谁有这方面的代码 一个变量怎么样传到函数中 我想转向PHP,但不知mysql数据库有没有形成类似.mdb样的文件好下载备份? php 读取文件夹中文件的扩展名有几种方式 Zend Encoder如何安装
就可以递归列出所有文件,如果第一个字母是D就是文件夹
---------------------------------------------------------------$values = array(
"sitename" => "abc.ru",
"ftpserver" => "u12345.ftp.masterhost.ru",
"ftpuser" => "u12345",
"ftppassword" => "mypassword",
"remotedir" => "abc.ru/www"
);
function getAllFilesViaFTP($values){
$beginTime = time();
echo "connecting to ".$values['sitename']."\n";
// set up a connection or die
if (!$conn_id = ftp_connect($values['ftpserver'])) return ("can't connect to ".$values['ftpserver']."\n");
// try to login
if (!@ftp_login($conn_id, $values['ftpuser'], $values['ftppassword'])) echo "can't login to ".$values['sitename']." with entered ".$ftp_user." and password(...) \n";
// get the file list for $values['remotedir']
$fileList = ftp_rawlist($conn_id, $values['remotedir'], TRUE);
// print_r($fileList);
$fileList_c = count($fileList);
$allFiles = $allFilesCount = $allUseFulFilesCount = null;
$currentDir = $values['remotedir'];
for ($i=0;$i<$fileList_c;$i++){
// change current dir, if current array element is an empty line
if (!$fileList[$i]) $currentDir = $fileList[$i+1];
else{
$allFilesCount++;
$fileInfo = list() = explode(" ", $fileList[$i]);
// print_r($fileInfo);
$fileName = $fileInfo[count($fileInfo) - 1];
if (preg_match("/\.php/", $fileName) or preg_match("/\.htm/", $fileName) or preg_match("/\.html/", $fileName)){
$allUseFulFilesCount++;
$allFiles[] = preg_replace("/:/", "", $currentDir)."/".$fileName;
}
}
}
// close the connection
ftp_close($conn_id);
// time
$fullTime = time() - $beginTime;
$result = array (
"allFilesCount" => $allFilesCount,
"allUseFulFilesCount" => $allUseFulFilesCount,
"fullTime" => $fullTime,
"fileList" => $allFiles
);
return $result;
}$fileList = getAllFilesViaFTP($values);
print_r($fileList);
楼主【victor0910】截止到2008-06-26 17:08:46的历史汇总数据(不包括此帖):
发帖数:6 发帖分:120
结贴数:0 结贴分:0
未结数:6 未结分:120
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html