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

リンク

コードの問題は、引用符を"正しくエスケープしていないことです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>';
}

大文字の最初の文字

あなたの質問の2番目の部分については、最初の文字を大文字にしたいだけなら(ali Aが示唆したように) php function を使用できます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 に答える