我的问题分为两部分。
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);
}
}
}
答案 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页面,并找到文件名...