php - 如何正确构建 php 导航栏

标签 php navbar dir

我的根目录中有一个索引文件。

我有一个名为pages 的目录。

导航栏位于包含目录中。

如果我想将导航栏包含在index.php 以及位于pages 目录中的每个pages.php 中。构造此导航栏的正确方法是什么,以便 php 可以根据其所在页面上下移动目录。

每个页面被标识为

$page = currentPage

这是我当前的导航栏,位于包含目录中

<ul>
<?php if ($page == 'home') { ?><li class="active"><a href="index.php" class="active">Home</a></li>
<?php } else { ?><li><a href="../index.php">Home</a><?php } ?>

<?php if ($page == 'contact') { ?><li class="active"><a href="contact.php" class="active">Contact Us</a></li>
<?php } else { ?><li><a href="pages/contact.php">Contact Us</a><?php } ?>

<?php if ($page == 'services') { ?><li class="active"><a href="services.php" class="active">Services</a></li>
<?php } else { ?><li><a href="pages/services.php">Services</a><?php } ?>

<?php if ($page == 'employees') { ?><li class="active"><a href="employees.php" class="active">Employees</a></li>
<?php } else { ?><li><a href="pages/employees.php">Employees</a><?php } ?>

<?php if ($page == 'dashboard') { ?><li class="active"><a href="dashboard.php" class="active">Dashboard</a></li>
<?php } else { ?><li><a href="pages/dashboard.php">Dashboard</a><?php } ?>
</ul>

目录看起来像这样。

根/包含

根/页面

感谢您提前提供的帮助。我意识到我可以做一些简单的事情来解决这个问题,但我真的很想在未来了解这一点。

这是页面当前的布局方式:

<?php $page = 'contact'; ?>

<html>
<meta charset="utf-8"> 
<title>Contact Us</title>
<head>
<base href="http://www.mysite.com/Dir_IM_Working_on_root/pages/" />
<link rel="stylesheet" type="text/css" href="../css/styles.css" />
</head>

<body>
<div id="wrapper">

<div id="nav">
<?php include '../includes/nav.php'; ?>
</div><!-- CLOSING NAV DIV -->

<div id="main">

</div><!-- CLOSING MAIN DIV -->

<footer>
<?php include '../includes/footer.php'; ?>
</footer>

</div><!-- CLOSING WRAPPER DIV -->
</body>
</html>

最佳答案

最简单的方法是在所有情况下都输出绝对 URL。 (/test.php)

如果您想保留在子文件夹中运行站点的可能性,您可以在所有路径前面添加一个变量。这可以更改为您网站的当前位置。

另一种方法是添加

<base href="http://www.example.org/subfolder/" />

到您的 html 代码并结合绝对 URL 进行相应的更改。所有 URL 均基于您在属性中输入的内容。这是一个非常优雅的解决方案,但它影响很大,如果一个人没有接受过网络链接方面的培训,这可能会令人惊讶。

我认为没有“正确”的方法。 Typo3 使用基本标签变体,这很可能是我使用的方式。许多其他软件使用变量变量(或将路径包装在函数中——这只是实现相同目的的另一种方法)。只需尝试一些方法,然后决定我认为对您最有吸引力的一种。

根据我的经验,几乎没有人使用的唯一东西就是相对 URL。

更新

将此 html 与基本 html 标签结合使用。

<ul>
<li<?php if ($page == 'home') echo ' class="active' ?>><a href="index.php">Home</a></li>
<li<?php if ($page == 'contact') echo ' class="active' ?>><a href="pages/contact.php">Contact Us</a></li>
<li<?php if ($page == 'services') echo ' class="active' ?>><a href="pages/services.php">Services</a></li>
<li<?php if ($page == 'employees') echo ' class="active' ?>><a href="pages/employees.php">Employees</a></li>
<li<?php if ($page == 'dashboard') echo ' class="active' ?>><a href="pages/dashboard.php">Dashboard</a></li>
</ul>

关于php - 如何正确构建 php 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957541/

相关文章:

c - 怎么躲。和 .. C 中的文件夹?

php - 想知道 Laravel 的类(class)持续时间还剩多少天

php - ZF2 动态菜单 Zend\Navigation\Navigation

php - SELECT查询麻烦——用户登录系统

html - 在灵活宽度页面的列表中居中水平导航栏

awk - 如何在awk中跳过目录?

java - 在Java中将 "dir"的结果输出到控制台

php - linux 相当于使用 system() 从 PHP 在 Windows 上运行 .bat 文件

html - 无法将 Logo 图像的属性设置为响应

html - 居中对齐 Bootstrap 导航按钮