0

我有一个菜单,可以在其中获取目录中文件的名称并将它们放入菜单中。这是我使用的代码:

<ul>
    <?php   foreach(glob("overzicht/projects/{*.php,*.html}", GLOB_BRACE) as $file) {
                echo "<li><a>".pathinfo($file, PATHINFO_FILENAME)."</a></li>";
         } 
    ?>
</ul>

现在我想在菜单中获得一个链接,所以 li 会是这样的

<li><a href="filename.php"> filename </a></li>

我试过这个,但它不会工作

<ul>
    <?php   foreach(glob("overzicht/projects/{*.php,*.html}", GLOB_BRACE) as $file) {
                echo "<li><a href="".pathinfo($file, PATHINFO_FILENAME).".php">".pathinfo($file, PATHINFO_FILENAME)."</a></li>";
            } 
    ?>          
</ul>

我做错了什么或者我为什么要这样做?

编辑

我还希望菜单的第一个字母是大写字母。这也可以吗?

4

2 回答 2

1

对于首字母大写,您可以使用:ucfirst()

对于您的路径信息,请确保 $file 不为空。在此处发布错误。

于 2013-10-13T09:44:07.697 回答
1

链接

"您的代码的问题是您没有正确地转义引号echo...

foreach(glob("./path/to/file/{*.ext}", GLOB_BRACE) as $file) {
    echo "<li><a href=\"".pathinfo($file, PATHINFO_FILENAME).".php\">".pathinfo($file, PATHINFO_FILENAME)."</a></li>";
}

使用单引号 '

foreach(glob("./path/to/file/{*.ext}", GLOB_BRACE) as $file) {
    echo '<li><a href="'.pathinfo($file, PATHINFO_FILENAME).'.php">'.pathinfo($file, PATHINFO_FILENAME).'</a></li>';
}

大写首字母

至于问题的第二部分,如果您只想将第一个字母设为大写,那么(如ali A建议的那样)您可以使用 php 函数ucfirst。如果要将文件名放在标题大小写中,则可以ucwords改用。

$a = "filename";
$b = "this file name";

echo ucfirst($a); // Filename
echo ucwords($a); // Filename
echo ucfirst($b); // This file name
echo ucwords($b); // This File Name
于 2013-10-13T10:00:23.090 回答