dongxun2089 2010-11-03 15:39
浏览 75
已采纳

通过FTP获取文件列表

I want to print the list of files and only files from an FTP server, here is what I could accomplish.

<?php
    $ftp_server = "my ftp server";
    $conn_id = ftp_connect($ftp_server);
    $ftp_user_name = "ftp username";
    $ftp_user_pass = "ftp password";
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    $contents = ftp_nlist($conn_id, '/');
    for ($i = 0 ; $i < count($contents) ; $i++)
        echo "<li>" . substr($contents[$i],1) . "</li>";
    ftp_close($conn_id);
?>

but this prints the names of files and folders. How can I just print the names of files (files may not have extensions!)

  • 写回答

5条回答 默认 最新

  • dongya9346 2010-11-03 15:52
    关注

    Options:

    1) you can use ftp_rawlist instead of ftp_nlist to get the full listing for the file/directory, which should indicate whether it's a directory. However, the format of that listing will depend on the operating system of the ftp server. For example, on a unix/linux system the raw listing might look something like this:

    drwxrwxr-x  3 jm72 jm72  4096 Nov  2 16:39 myDir
    -rw-rw-r--  1 jm72 jm72   257 Nov  2 16:39 myFile
    

    where the "d" in the first column will tell you it's a directory. Not sure what it would look like on a Windows server.

    2) for each file name you return, try to CD into it. If you can, it's a directory!

    if (ftp_chdir($conn_id, substr($contents[$i],1)) {
      //it's a directory, don't include it in your list
      ftp_cdup($conn_id) //don't forget to go back up to the directory you started in!
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)