我有一个菜单,我在其中获取目录中文件的名称并将它们放在菜单中。 这是我使用的代码:
<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>
我做错了什么或为什么要这样做?
修改
我还希望菜单的第一个字母成为首都。这也有可能吗?
答案 0 :(得分:2)
首字母是您可以使用的资本:ucfirst()
为您的pathinfo,确保$ file不为空。在这里发布错误。
答案 1 :(得分: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