名前の付いたファイルがadministrator1.php
あり、その中にtest.php
含まれています。したがって、内部のコードadministrator1.php
は
<?php include 'test.php'; ?>
内にダイナミック ナビゲーション メニューがありますtest.php
。コードは
<?php
$menu = array(
'users' => array('text'=>'USERS', 'url'=>'administrator1.php'),
'createProfile' => array('text'=>'CREATE PROFILE', 'url'=>'administrator2.php'),
'payment' => array('text'=>'PAYMENTS', 'url'=>'administrator3.php'),
'defense' => array('text'=>'DEFENSE', 'url'=>'administrator4.php'),
'progressReport' => array('text'=>'PROGRESS REPORT', 'url'=>'administrator5.php'),
);
class Nav {
function GenerateMenu($items) {
$html = "<ul>";
foreach($items as $item) {
if(stristr(__FILE__,$item['url'])===FALSE) {
$html .= "<li><a href='{$item['url']}' ><span><B>{$item['text']}</B></span> </a> </li>";
}
else {
$html .= "<li class='active'><a href='{$item['url']}' ><span><B>{$item['text']}.nnn</B></span> </a></li>";
}
}
$html .= "</ul>";
return $html;
}};
echo Nav::GenerateMenu($menu);
?>
そしてNav
、同じファイル内でメソッドを呼び出しました。
ここでの問題は、ナビゲーション バー全体が出力されるが、選択された項目 ('USERS') の CSS クラスactive
が呼び出されないことです。administrator1.php
しかし、ファイルを含めずにファイル内のこのコード全体を置き換えると、test.php
正常に動作します。ということで、インクルードファイルのファイルパスに問題があると思います。そして、それは私が__FILE__
現在のパスを取得するために使用したからですか? 次に、パスに含まれるファイル名を除いて現在のファイルパスを取得するにはどうすればよいですか?