PHP scandir of an url

2019-01-27 09:45发布

问题:

How can I use scandir with an URL. Now it looks like PHP doesn't see the URL as an URL. Is there a way to use an URL in 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>

回答1:

This is not possible. scandir() and many other file operations only work local.

If you want to get a list of files on a remote server then you need a script/API on the server that will return that file list.

Just imagine what would happen if you could read all files and directories on a remote machine? Security would be realy compromised.



回答2:

Scandir works perfectly for local directory.

scandir — List files and directories inside the specified path

But you can't get list of files onto server, because in many cases urls are not directly mapping on files (e.g., location command of nginx webserver). Also webservers usually block possibility of getting list files for directories (see this settings for apache)



标签: php url scandir