我有代码
$directory = "C:/My file path";
$phpfiles = glob($directory . "*.html");
foreach($phpfiles as $phpfiles)
{
echo $phpfiles;
}
但是我如何更改它以便它不仅列出文件,而是实际链接到它们?
答案 0 :(得分:15)
首先,不要在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")
谢谢,@ Communtik。
答案 1 :(得分:1)
假设可以通过Web服务器访问链接,您需要一个与计算机上不同的Web访问根路径。而且,你的foreach错了。第二个变量需要是单数的(好吧,至少与第一个不同)。因此,假设您的Web服务器将文件路径视为有效的站点路径:
$rootPath = "/MyFilePath";
foreach ($phpfiles as $phpfile)
{
echo "<a href=\"$rootPath/$phpfile\">$phpfile</a>";
}
答案 2 :(得分:0)
$files = glob("*.html");
echo '<ul>'.implode('', array_map('sprintf', array_fill(0, count($files), '<li><a href="%s">%s</a></li>'), $files, $files)).'</ul>';
答案 3 :(得分:0)
这没关系&#34; eray&#34;
$ phpfile包含文件的完整路径(例如: /home/eray/Desktop/test.html)basename()只返回文件名 从路径。 basename($ phpfile)的输出是test.html。如果你想 打印只是测试(没有.html扩展名),你可以使用这个: basename($ phpfile,&#34; .html&#34;)谢谢@aSeptik。
如何删除。 php扩展和链接。
的exaple: http // example.com / dir1 / file .php **
(最后输出.php。)
由于