PHP使用<a> tags</a>列出文件夹中的所有HTML文件

时间:2014-02-17 01:54:18

标签: php html glob

我有一个html文件,列出了艺术家页面的链接。我想要做的是使用PHP脚本列出它们而不是手动列出它们。我还想在每个相应的链接上面有一个缩略图,但我想在添加图像之前先获取链接。我正在使用以下脚本,但它不起作用:

<?php

$directory = "C:/wamp/myprojects/UMVA/web/includes/artists";
$phpfiles = glob($directory . "*.html");

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

?>

包含html文件的文件夹是艺术家。它不能使用完整路径名,并且仅使用'artists'或'/ artists'作为路径名不起作用。 'artists'文件夹与带脚本的php文件位于同一目录'web'中。我在这里错过了什么?

3 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

$htmlFiles = glob("$directory/*.{html,htm}", GLOB_BRACE);

source

答案 1 :(得分:0)

如果你的目录总是'C:/ wamp / myprojects / UMVA / web / artists',我想你可以试试scandir($ dirname)而不是glob()。

答案 2 :(得分:0)

不确定错误在哪里,但您也可以以更可重用的方式使用SPL迭代器,如GlobIterator。 GlobIterator返回SplFileInfo对象,提供有关您文件的许多有用信息。

以下是文档页面:

以下是一个例子:

$it = new GlobIterator('C:/wamp/myprojects/UMVA/web/artists/*.jpg');

foreach ($it as $file) {
    // I added htmlspecialchars too, never output unsafe data without escape them
    echo '<a href="' . htmlspecialchars($file->getPathname()) . '">' . htmlspecialchars($file->getFilename()) . '</a>';
}