名前の付いたファイルが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__現在のパスを取得するために使用したからですか? 次に、パスに含まれるファイル名を除いて現在のファイルパスを取得するにはどうすればよいですか?