PHP url 的丑闻
PHP scandir of an url
如何将 scandir 与 URL 一起使用。现在看起来 PHP 没有将 URL 视为 URL。有没有办法在 scandir 中使用 URL?
<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>
这是不可能的。 scandir()
和许多其他文件操作只能在本地进行。
如果您想获取远程服务器上的文件列表,那么您需要服务器上的 script/API 来 return 该文件列表。
试想一下,如果您可以读取远程机器上的所有文件和目录,会发生什么?安全性真的会受到损害。
Scandir
非常适合本地目录。
scandir — List files and directories inside the specified path
但是你无法将文件列表放到服务器上,因为在许多情况下,url 并不直接映射到文件(例如,nginx webserver). Also webservers usually block possibility of getting list files for directories (see this settings for apache 的 location
命令)
如何将 scandir 与 URL 一起使用。现在看起来 PHP 没有将 URL 视为 URL。有没有办法在 scandir 中使用 URL?
<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>
这是不可能的。 scandir()
和许多其他文件操作只能在本地进行。
如果您想获取远程服务器上的文件列表,那么您需要服务器上的 script/API 来 return 该文件列表。
试想一下,如果您可以读取远程机器上的所有文件和目录,会发生什么?安全性真的会受到损害。
Scandir
非常适合本地目录。
scandir — List files and directories inside the specified path
但是你无法将文件列表放到服务器上,因为在许多情况下,url 并不直接映射到文件(例如,nginx webserver). Also webservers usually block possibility of getting list files for directories (see this settings for apache 的 location
命令)