【问题标题】:create menu in php - pages in sub directories在 php 中创建菜单 - 子目录中的页面
【发布时间】:2012-07-17 20:27:51
【问题描述】:

我正在学习 PHP。我想创建一个菜单,可以从站点目录中的任何文件夹打开页面。以下是目录和文件的结构:

ROOT DIRECTORY
 dirINCLUDES
    header.php
    footer.php
    navigation.php

 dirPROJECT
    index.php
    project1.php
    project2.php

 index.php

以下在我的navigation.php中:

<ul class="accordion"  id="accordion">
<li><a href="index.php">home</a></li>
<li><a href="project/index.php">project</a></li>
</ul>

现在,当我单击“项目”链接时,它会将我带到 project/index.php,但是当我在该页面上并单击“主页”链接时,它不会将我带到主页页。 我已将 dir INCLUDES 中的所有 php 文件包含到 index.php 和 project/index.php 文件中。

任何帮助将不胜感激。 谢谢。

【问题讨论】:

  • 只需将/ 添加到链接href 的开头即可。 / 引用根目录。

标签: php navigation subdirectory


【解决方案1】:

试试这个...

<ul class="accordion"  id="accordion"> <li><a href="../index.php">home</a></li> <li><a href="index.php">project</a></li> </ul> 

【讨论】:

    【解决方案2】:
    href="<?echo dirname(dirname(__FILE__)).'directory/file.php';?>"
    

    href="/directory/file.php"
    

    【讨论】:

    • 使用你的代码,它给出的链接就像---- c:\wamp\www\mysite/project-select/index.php
    • 你不应该使用 dirname 作为 HREF,因为它会给出绝对路径
    【解决方案3】:
    function menu($dir){
    $files = glob($dir.'/*');
    $html = '<ul>';
    foreach($files as $file){
        if(is_dir($file)){
            $html .= menu($file);
        }else{
            $html .= '<li><a href="'. $file .'">'. basename($file,'.php') .'</a></li>';
        }
    }
    $html .= '</ul>';
    return $html;
    

    }

    echo menu("./*");

    【讨论】:

    • 这列出了所有目录中的所有文件。我想建立网站导航而不是显示所有页面。
    【解决方案4】:

    尝试完整路径,例如 /index.php、/project/index.php 等

    <li><a href="/mysite/index.php">home</a></li>
    <li><a href="/mysite/project/index.php">project</a></li>
    

    编辑的链接

    【讨论】:

    • 这会从 localhost 获取文件,例如:
    • project
    • 将是 localhost 的链接/project/index.php 但该文件实际上位于 localhost/mysite/project/index.php
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签