使用PHP从HTTP目录获取文件列表

时间:2014-04-09 14:17:31

标签: php

我试图通过PHP从目录中获取文件列表。 我也试过通过glob,但不能使用HTTP,递归尝试,这是我设法找到的最新脚本。只是它不起作用。它不显示文件。

<?php
$url = 'removed for security puposes';
$html = file_get_contents($url);
$count = preg_match_all('/<td><a href="([^"]+)">[^<]*<\/a><\/td>/i', $html, $files);
for ($i = 0; $i < $count; ++$i) {
  echo "File: " . $files[1][$i] . "<br />\n";
}
var_dump($files);
?>

输出var_dump($files);

array(2) { 
     [0]=> array(0) {
      } 
     [1]=> array(0) 
      { } 
} 

所以我错了。

3 个答案:

答案 0 :(得分:2)

页面上的

是列表,而不是表格

   <?php
   $url = 'http://www.seoadsem.com/opencart';
   $html = file_get_contents($url);
   $count = preg_match_all('/<li><a href="([^"]+)">[^<]*<\/a><\/li>/i', $html, $files);
   for ($i = 0; $i < $count; ++$i) {
     echo "File: " . $files[1][$i] . "<br />\n";
   }
   var_dump($files);
   ?>

答案 1 :(得分:1)

出于安全原因,file_get_contents可能不适用于网址,只适用于文件。请改用cURL。这可以为您节省大量的调试时间。

请参阅PHP cURL vs file_get_contents

答案 2 :(得分:1)

<?php
    $url = 'removed for security puposes';
    $html = file_get_contents($url);
    $count = preg_match_all('/<a href="([^"]+)(png|jpg|mp4|\/)">[^<]*<\/a>/i', $html, $files);
    for ($i = 0; $i < $count; ++$i) {
       echo "File: " . $files[1][$i] . $files[2][$i] . "<br />\n";
    }
    var_dump($files);
 ?>

png,jpg,mp4可以替换为所需的扩展名。