使用PHP动态构建html菜单(和子菜单)

时间:2017-01-13 18:37:47

标签: php jquery html nav

我想在特定文件夹中查找任何html文件,并根据结果构建我的菜单和子菜单:

例如我的项目文件可能是:'project1_qa_qa2.html',...,'project2_dev_dev1.html'等等......而bw应该返回'project1','qa','qa2 '; ......; 'project2','dev','dev1'; ...

我需要循环遍历每个元素{project(1或2),department(qa或dev)和id(dev1,qa2,..)}以动态方式构建我的菜单/子菜单。 / p>

我从http://callmenick.com/_development/slide-down-menu/

获得了一个基础资源

我添加了我的硬编码示例代码,以显示我想要它的样子。

gradelw ofbizDebug

1 个答案:

答案 0 :(得分:0)

这只是为了向您展示我使用了哪些代码并指出了正确的方向。用于扫描目录:

function getFromDir( $dir ) {
    $cdir = scandir( $dir );
    $result = array();

    foreach( $cdir as $key => $value ) {
        if( !in_array( $value, array('.', '..') ) ) {
            if( is_dir( $dir . DIRECTORY_SEPARATOR . $value ) ) {
                $result[$value] = getFromDir($dir . DIRECTORY_SEPARATOR . $value);
            } else {
                $result[] = $value;
            }
        }
    }

    return $result;
}

如创建html的评论所示:

function outputMenu(array $array, $baseUrl = '/') {
    $html = '';
    foreach( $array as $key => $item ) {
        if( is_array( $item ) ) {
            $html .= '<li>'.$key.'<ul>';
            $html .= outputMenu($item, $baseUrl.$key.'/');
            $html .= '</ul></li>';
        } else {
            $html .= '<li><a href="'.$baseUrl.$item.'">'.ucfirst(substr($item, 0, -4)).'</a></li>';
        }
    }
    return $html;
}

echo outputMenu(getFromDir('./projects'));