Подтвердить что ты не робот

PHP: список файлов типа в каталоге и ссылка на них

У меня есть код

$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");

foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}

Но как я могу изменить его, чтобы он не просто перечислял файлы, а фактически ссылался на них?

4b9b3361

Ответ 1

Прежде всего, не используйте имена переменных в foreach(). Вы можете ссылаться на файлы, например.

foreach($phpfiles as $phpfile)
{
echo "<a href=$phpfile>".basename($phpfile)."</a>";
}

$phpfile, содержащий полный путь к файлу (например:/home/eray/Desktop/test.html)

basename() возвращает только имя файла из пути. Выход basename($phpfile) равен test.html. Если вы хотите напечатать только test (без расширения .html), вы можете использовать это: basename($phpfile, ".html") Спасибо, @aSeptik.

Ответ 2

Предполагая, что ссылки доступны через веб-сервер, вам понадобится другой корневой путь для доступа к сети, чем у вас на вашем компьютере. Кроме того, ваш предлог ошибочен. Вторая переменная должна быть сингулярной (ну, по крайней мере, отличной от первой). Поэтому, предполагая, что ваш веб-сервер видит путь к файлу в качестве допустимого пути к сайту:

$rootPath = "/MyFilePath";
foreach ($phpfiles as $phpfile)
{
    echo "<a href=\"$rootPath/$phpfile\">$phpfile</a>";
}

Ответ 3

$files = glob("*.html");
echo '<ul>'.implode('', array_map('sprintf', array_fill(0, count($files), '<li><a href="%s">%s</a></li>'), $files, $files)).'</ul>';

Ответ 4

Это нормально "eray"

$phpfile, содержащий полный путь к файлу (например: /home/eray/Desktop/test.html) basename() возвращает только имя файла от пути. Выход basename ($ phpfile) - test.html. Если ты хочешь print just test (без расширения .html), вы можете использовать это: basename ($ phpfile, ".html" ) Спасибо, @aSeptik.

как удалить. php и в ссылке.

exaple: http//example.com/dir1/file.php **

(без конца .php).


Спасибо