我需要在给定的 url 位置获取所有文件。
示例:考虑这个 url - http://www.test.com/test/ 我在给定 url 的 test 文件夹中有三个文件(file1.txt、file2.csv、file3.xls)。如何使用 PHP 中的 fopen() 方法读取文件名?
我需要在给定的 url 位置获取所有文件。
示例:考虑这个 url - http://www.test.com/test/ 我在给定 url 的 test 文件夹中有三个文件(file1.txt、file2.csv、file3.xls)。如何使用 PHP 中的 fopen() 方法读取文件名?
这取决于处理您的 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]);
如果您想要的只是某个目录中的文件列表,那么不要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>
生成结果,或者您希望显示内容。