1

我需要在给定的 url 位置获取所有文件。

示例:考虑这个 url - http://www.test.com/test/ 我在给定 url 的 test 文件夹中有三个文件(file1.txt、file2.csv、file3.xls)。如何使用 PHP 中的 fopen() 方法读取文件名?

4

2 回答 2

0

这取决于处理您的 URL 的 HTTP 服务器返回目录索引的能力。即使它能够返回索引,这种索引的格式也不是标准化的。如果你知道 HTTP 服务器返回目录索引并且你知道格式,你可以得到这样的文件列表:

$index = fopen ('http://ftp.gnu.org/', 'r');
$data = "";
while ($d = fread ($index, 65536))
  $data = $data . $d;

$matches = array ();
preg_match_all ('/href="([^"]+)"/', $data, $matches);

print_r ($matches [1]);
于 2013-02-19T14:04:29.907 回答
0

如果您想要的只是某个目录中的文件列表,那么不要fopen()尝试scandir

$dir = "http://www.test.com/test/"

$files = scandir($dir);

print_r($files);

如果主机服务器权限允许,您应该得到以下结果:

Array(
[0] => .,
[1] => ..,
[2] => file1.txt,
[3] => file2.csv,
[4] => file3.xsl
)

然后,您总是可以循环遍历数组以<ul>生成结果,或者您希望显示内容。

于 2013-02-19T16:57:53.110 回答