2016-03-07 100 views
0

如何將scandir與URL配合使用。現在看起來PHP並沒有將URL看作URL。有沒有辦法在scandir中使用URL?網址的PHP scandir

<form action="new_exercise.php?id=<?php echo $new_id; ?>" method="post"> 
     <input class="" type="text" name="name_exe" required placeholder="Project naam"> 
     <select name="audio" required> 
      <option></option> 
      <?php 
      $path = 'URL comes here'; 
      $results = scandir($path); 
      foreach ($results as $result) { 
       if ($result === '.' or $result === '..') continue; 

       if (is_dir($path . '/' . $result)) { 
        echo "<option>" . $result . "</option>"; 
       } 
      } 
      ?> 
     <select> 
     <input class="btn-success" type="submit" name="submit" value="Maak nieuwe opdracht"> 
    </form> 
+0

我當然希望scandir不允許這樣做 –

+0

我非常確定您無法通過url執行此操作。 scandir函數接受相對或絕對的目錄路徑,但不能將URL傳遞給此函數。這不可能。 – DevMan

回答

1

這是不可能的。 scandir()和許多其他文件操作只能在本地使用。

如果您想獲取遠程服務器上的文件列表,則需要服務器上的腳本/ API來返回該文件列表。

想象一下,如果您可以讀取遠程機器上的所有文件和目錄,會發生什麼?安全將受到嚴重影響。

0

Scandir完美適用於本地目錄。

scandir - 列出文件和目錄指定的路徑內

但你不能獲取文件列表到服務器,因爲在很多情況下,URL不能被直接映射的文件(例如,location命令的nginx webserver)。此外,網絡服務器通常會阻止獲取目錄列表文件的可能性(請參閱apache的此設置)