2011-11-17 55 views
6

當我運行:獲取遠程服務器中的文件和文件夾列表中PHP

$url='foldername'; 
$dir = opendir($url); 

//List files in images directory 
while (($file = readdir($dir)) !== false) 
    { 

    echo "filename: " . $file . "<br />"; 
    } 
closedir($dir); 

...它輸出:

filename: a.gif 
filename: file.html 
filename: g.gif 
filename: gg.html 

我希望看到另一臺服務器上的所有文件和文件夾從網址:

$url="http ://example.com" 

如何從example.com找到文件和文件夾名稱?

+0

你真的想瀏覽的網址爲所有文件和文件夾(不可能/看答案),或者是你想列出你服務器上的所有文件和文件/網絡空間? –

回答

6

http://不支持目錄列表。你試圖做的事情是不可能的。

+0

然後如何打開..有任何功能打開文件 – vineeth

+0

@vineeth:就像我說的,它是不可能獲得遠程目錄列表的http服務器。除非您有另一條路徑進入服務器,例如FTP訪問,否則您運氣不佳。 –

4

當然是不可能的,否則網站會變得更加脆弱,因爲任何人都可以探索他們的目錄樹!

如果您有另一種訪問該網站的方式(例如,如果它是您的),則可以使用FTP或SSH。

8

這是可能的。剛剛離開盒子。只有這個缺陷是索引輸出

<? 
    $matches = array(); 
    preg_match_all("/(a href\=\")([^\?\"]*)(\")/i", get_text('http://www.website.com/ images/'), $matches); 
    foreach($matches[2] as $match) 
    { 
     echo $match . '<br>'; 
    } 

    function get_text($filename) 
    { 
     $fp_load = fopen("$filename", "rb"); 
     if ($fp_load) 
     { 
      while (!feof($fp_load)) 
      { 
       $content .= fgets($fp_load, 8192); 
      } 
      fclose($fp_load); 
     return $content; 
     } 
    } 
?> 
+1

我只是想知道[2]是什麼?謝謝 – KarenAnne

0

這應該在某些服務器正常工作

function get_text($filename) { 

    $fp_load = fopen("$filename", "rb"); 

    if ($fp_load) { 

      while (!feof($fp_load)) { 
       $content .= fgets($fp_load, 8192); 
      } 

      fclose($fp_load); 

      return $content; 

    } 
} 


$matches = array(); 

preg_match_all("/(a href\=\")([^\?\"]*)(\")/i", get_text('https://www.example.com/'), $matches); 

foreach($matches[2] as $match) { 
    echo $match . '<br>'; 
} 
相關問題