0

我的问题有两个部分。

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);
    }
  }
}
4

3 回答 3

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

于 2013-11-07T14:31:30.663 回答
0

对于第 1 点)

看看scandir函数。它将结果放入一个数组中。知道数组中的位置 0 和 1 几乎总是 . 和..你可以排除它们

对于第 2 点)

我真的不明白你的意思。似乎您想下载文件,但从 localhost 将毫无意义。使用路径 D:/... 有什么问题

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

于 2013-11-07T14:31:16.677 回答
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 ”之类的 url 解析结果 html 页面并找到文件名...

于 2013-11-07T14:44:38.707 回答