PHP:列出目录中的类型文件并链接到它们

时间:2012-01-21 21:09:30

标签: php

我有代码

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

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

但是我如何更改它以便它不仅列出文件,而是实际链接到它们?

4 个答案:

答案 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。)


由于