从php中的目录中读取所有文件

时间:2013-11-07 14:21:34

标签: php directory

我的问题分为两部分。

1-我有直接D:/wamp/www/test/gmail-imap/upload/并且其中包含五个文件。我必须将此目录读为

 ini_set('display_errors',1);
$dir = "D:/wamp/www/test/gmail-imap/upload/";
$i=0;
// Open a directory, and read its contents
if (is_dir($dir)){
  if ($dh = opendir($dir)){
   while (($file = readdir($dh)) !== false){

    if($file!=''){
     echo $i."-filename:" . $file . "<br>"; $i++;
    }
   }
  closedir($dh);
 }
}
die();

输出就是这个

 0-filename:.
 1-filename:..
 2-filename:1-stackoverflow.png
 3-filename:2-stackoverflow.png
 4-filename:3-Desert.jpg
 5-filename:4-code.zip
 6-filename:5-Chapter13.pdf

我的输出中不需要0和1.我错过了什么?

2-我必须从服务器http://localhost/test/gmail-imap/uploads而不是D:/wamp/www/test/gmail-imap/upload/

中读取

有什么建议吗?

第一部分更正为

ini_set('display_errors',1);
$dir = "D:/wamp/www/test/gmail-imap/upload/";

// Open a directory, and read its contents
if (is_dir($dir)){
  if ($dh = opendir($dir)){
    if ($handle = opendir('.')) {
   while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
     echo "$entry\n";
    }
     }

 closedir($dh);
    }
  }
}

3 个答案:

答案 0 :(得分:1)

对于第二个问题:您无法使用HTTP。但是,您可以使用FTP执行此操作。 (此功能可能在服务器中关闭。请在使用前检查)

$conn = ftp_connect($ftp_server);

// login with username and password
$login = ftp_login($conn, $user_name, $user_pass);

// get contents of the current directory
 $contents = ftp_nlist($con, ".");

var_dump($contents);

第一个问题:您可以使用评论中建议的if条件

编辑:如果它是与脚本相同的服务器,则不需要ftp

答案 1 :(得分:0)

对于第1点)

查看scandir功能。它将结果放入数组中。知道数组中的位置0和1几乎总是如此。而且......你可以把它们排除在外

对于第2点)

我真的不明白你的意思。好像你想下载文件,但是从 localhost是没有意义的。使用路径D:/ ...

有什么问题

请详细说明一下,我会看看能否提供答案。

答案 2 :(得分:0)

$file = "http://domain.com/directory/filename";
$save_path = 'download/';
$fp = fopen($save_path.basename($file), 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$data = curl_exec($ch);
curl_close($ch);
fclose($fp);

Curl可能可以解决您的问题,但您需要知道将下载哪些文件。

如果允许远程目录列出,则可以从“http://domain.com/directory”等网址解析结果html页面,并找到文件名...