У меня есть код
$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");
foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}
Но как я могу изменить его, чтобы он не просто перечислял файлы, а фактически ссылался на них?
У меня есть код
$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");
foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}
Но как я могу изменить его, чтобы он не просто перечислял файлы, а фактически ссылался на них?
Прежде всего, не используйте имена переменных в 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.
Предполагая, что ссылки доступны через веб-сервер, вам понадобится другой корневой путь для доступа к сети, чем у вас на вашем компьютере. Кроме того, ваш предлог ошибочен. Вторая переменная должна быть сингулярной (ну, по крайней мере, отличной от первой). Поэтому, предполагая, что ваш веб-сервер видит путь к файлу в качестве допустимого пути к сайту:
$rootPath = "/MyFilePath";
foreach ($phpfiles as $phpfile)
{
echo "<a href=\"$rootPath/$phpfile\">$phpfile</a>";
}
$files = glob("*.html");
echo '<ul>'.implode('', array_map('sprintf', array_fill(0, count($files), '<li><a href="%s">%s</a></li>'), $files, $files)).'</ul>';
Это нормально "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).
Спасибо