Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的动态导航_Php_Dynamic_Navigation - Fatal编程技术网

php中的动态导航

php中的动态导航,php,dynamic,navigation,Php,Dynamic,Navigation,如何在php中实现动态导航 e、 g 主页|关于|联系|常见问题解答|教程 我需要自动生成的链接动态分别到每个页面没有太多的脚本。e、 g我应该拥有所有链接,而无需手动输入到其他页面的链接?似乎您希望在所有页面中包含一个菜单文件。 您可以使用include() 在您的所有页面中: <html> <body> <?php include('navigation.php'); ?> Contents of this page here...

如何在php中实现动态导航

e、 g

主页|关于|联系|常见问题解答|教程


我需要自动生成的链接动态分别到每个页面没有太多的脚本。e、 g我应该拥有所有链接,而无需手动输入到其他页面的链接?

似乎您希望在所有页面中包含一个菜单文件。 您可以使用include()

在您的所有页面中:

<html>
  <body>
    <?php include('navigation.php'); ?>

    Contents of this page here...

  </body>
</html>

本页内容在此。。。
在navigation.php中:

<div id="mainmenu">
  <a href="home.php">Home</a> | <a href="about.php">About</a> | etc...
</div>

||等等。。。

这样,您可以为所有页面只更新一次导航菜单。

似乎您希望在所有页面中包含一个菜单文件。 您可以使用include()

在您的所有页面中:

<html>
  <body>
    <?php include('navigation.php'); ?>

    Contents of this page here...

  </body>
</html>

本页内容在此。。。
在navigation.php中:

<div id="mainmenu">
  <a href="home.php">Home</a> | <a href="about.php">About</a> | etc...
</div>

||等等。。。

通过这种方式,您可以只为所有页面更新一次导航菜单。

如果您只想显示一组已知页面的菜单,而不需要重新设计当前代码,那么以下方法如何:

<?php
$pages = array(
    'index.php' => 'Home',
    'about.php' => 'About',
    'contact.php' => 'Contact',
    'faq.php' => 'FAQ',
    'tutorials.php' => 'Tutorials',
) ;

$currentPage = basename($_SERVER['REQUEST_URI']) ;

?>

<div id="menu">
    <ul id="menuList">
        <?php foreach ($pages as $filename => $pageTitle) { 
            if ($filename == $currentPage) { ?>
        <li class="current"><?php echo $pageTitle ; ?></li>
            <?php } else { ?>
        <li><a href="<?php echo $filename ; ?>"><?php echo $pageTitle ; ?></a></li>
            <?php
            } //if 
         } //foreach 
            ?>
    </ul>
</div>


将其放入自己的文件中,比如
menu.php
,然后将其包含在每个页面中。然后,您可以使用CSS。

如果您只想显示一组已知页面的菜单,而不需要重新设计当前代码,那么:

<?php
$pages = array(
    'index.php' => 'Home',
    'about.php' => 'About',
    'contact.php' => 'Contact',
    'faq.php' => 'FAQ',
    'tutorials.php' => 'Tutorials',
) ;

$currentPage = basename($_SERVER['REQUEST_URI']) ;

?>

<div id="menu">
    <ul id="menuList">
        <?php foreach ($pages as $filename => $pageTitle) { 
            if ($filename == $currentPage) { ?>
        <li class="current"><?php echo $pageTitle ; ?></li>
            <?php } else { ?>
        <li><a href="<?php echo $filename ; ?>"><?php echo $pageTitle ; ?></a></li>
            <?php
            } //if 
         } //foreach 
            ?>
    </ul>
</div>


将其放入自己的文件中,比如
menu.php
,然后将其包含在每个页面中。然后你可以使用CSS。

我同意第一种解决方案,即使它有点简单。对我来说,你必须将你的网站拆分成一些脚本,在其中包括导航脚本,就像第二个解决方案一样

 /* header.php (main header template)*/
<html>
<head>
...
</head>
<body>
     <div id="mainMenu">
          <?php echo Navigation::getNav($databaseCnx);?>
     </div>
但是,如果您真的想进行动态导航,您的数据不能写入文件,而是存储在数据库或xml文件中。。。。 要做到这一点,您必须创建一个类或函数来解析您的数据,并像第一个解决方案一样创建数组

 /* header.php (main header template)*/
<html>
<head>
...
</head>
<body>
     <div id="mainMenu">
          <?php echo Navigation::getNav($databaseCnx);?>
     </div>
/*header.php(主标题模板)*/
...
在另一个脚本中,您必须创建一个管理数据的类

<?php 
class Navigation{
    static function getNav($cnx){
         $menuList = '<ul>';
         $dataFromDataBase = $cnx->getArray('MySqlRequest');

         foreach($dataFromDataBase as $menu) {
              $menuList  .='<li><a href="'.$menu->uri.'">'.$menu->name.'</a></li>';
         }

         $menuList .= '</ul>';

         return $menuList;
    }
}

我同意第一种解决方案,即使它有点简单。对我来说,你必须将你的网站拆分成一些脚本,在其中包括导航脚本,就像第二个解决方案一样

 /* header.php (main header template)*/
<html>
<head>
...
</head>
<body>
     <div id="mainMenu">
          <?php echo Navigation::getNav($databaseCnx);?>
     </div>
但是,如果您真的想进行动态导航,您的数据不能写入文件,而是存储在数据库或xml文件中。。。。 要做到这一点,您必须创建一个类或函数来解析您的数据,并像第一个解决方案一样创建数组

 /* header.php (main header template)*/
<html>
<head>
...
</head>
<body>
     <div id="mainMenu">
          <?php echo Navigation::getNav($databaseCnx);?>
     </div>
/*header.php(主标题模板)*/
...
在另一个脚本中,您必须创建一个管理数据的类

<?php 
class Navigation{
    static function getNav($cnx){
         $menuList = '<ul>';
         $dataFromDataBase = $cnx->getArray('MySqlRequest');

         foreach($dataFromDataBase as $menu) {
              $menuList  .='<li><a href="'.$menu->uri.'">'.$menu->name.'</a></li>';
         }

         $menuList .= '</ul>';

         return $menuList;
    }
}

我已经用我自己的风格完成了这项工作,但是对于我深入的每个子目录,我仍然需要循环和测试每个页面,这个导航取决于主机。我在xampp中经常遇到问题。您必须为此创建虚拟子域才能work@Oghenero您在多个子目录中有多个文件,但没有明确的列表,您需要脚本来动态浏览文件系统并找到它们?@Fanis“您可能需要查看@Sebastian P提供的链接问题”-我在另一个问题中发现了一个可能重复的问题。评论中的链接页面已被(当时的)版主删除。我以为你想知道,如果你想更新你的答案。@Fanis你可以在上面写评论,因为我做了编辑。注释中的链接已被删除。我已经以自己的风格完成了此操作,但对于深入的每个子目录,我仍然必须循环并测试每个页面,此导航取决于主机。我在xampp中经常遇到问题。您必须为此创建虚拟子域才能work@Oghenero您在多个子目录中有多个文件,但没有明确的列表,您需要脚本来动态浏览文件系统并找到它们?@Fanis“您可能需要查看@Sebastian P提供的链接问题”-我在另一个问题中发现了一个可能重复的问题。评论中的链接页面已被(当时的)版主删除。我以为你想知道,如果你想更新你的答案。@Fanis你可以在上面写评论,因为我做了编辑。注释中的链接已删除。