【发布时间】:2013-10-19 17:23:08
【问题描述】:
我有一个名为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。但是,如果我在不包含test.php 文件的情况下替换administrator1.php 文件中的整个代码,它就可以正常工作。所以我猜是包含文件的文件路径有问题。是因为我使用了__FILE__ 来获取当前路径吗?那么如何获取当前文件路径,不包括路径中包含的文件名?
【问题讨论】: