親フォルダ タブ
<?php
session_cache_limiter('nocache');
session_start();

$GLOBALS['level'] = 0;

header( "Content-Type: text/html; charset=utf-8" );
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta content="width=device-width initial-scale=1.0 minimum-scale=1.0 maximum-scale=1.0 user-scalable=no" name="viewport">
<meta charset="utf-8">
<title>list4.php</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css">
<script>
$(function(){

	// ページ右下固定位置のリンク
	var scroll_top = $("<a id='scroll_top'>▲</a>")
	scroll_top.prop("href","javascript:void(0)");
	scroll_top.css({ 
		"position": "fixed",
		"opacity": "0.5",
		"text-decoration": "none",
		"font-size" : "40px",
		"color" : "rgba(255,255,255,0.85)",
		"text-shadow" : "1px 1px 2px #656a6f",
		"right" : "3%",
		"bottom" : "5rem",
		"display" : "none"
	});

	// クリックした時の処理
	scroll_top.on("click", function(){
		window.scroll(0,0);
	});

	// ページの最後に追加
	$("body").append( scroll_top );

	// スクロールが無い先頭部分では表示しない
	$(window).on("scroll",function(){
		var scroll = $("html").scrollTop();
		if ( scroll <= 200 && $("#scroll_top").css("display") != "none" ) {
			$("#scroll_top").css("display","none");
		}
		if ( scroll > 200 && $("#scroll_top").css("display") == "none" ) {
			$("#scroll_top").css("display","");
		}
	});	

});
</script>
</head>
<body>

<div class="btn-group" style='position:fixed;left:200px;top:0px;z-index:2147483647'>
	<button type="button" class="btn btn-secondary">ジャンプ</button>
	<button type="button"
		class="btn btn-secondary dropdown-toggle dropdown-toggle-split"
		data-toggle="dropdown"
		aria-haspopup="true"
		aria-expanded="false">
		<span class="sr-only">Toggle Dropdown</span>
	</button>
	<div class="dropdown-menu">
		<a class="dropdown-item" href="#cs">C#</a>
		<a class="dropdown-item" href="#database">データベース</a>
		<a class="dropdown-item" href="#excel">Excel</a>
		<a class="dropdown-item" href="#html">HTML</a>
		<a class="dropdown-item" href="#java">Java</a>
		<a class="dropdown-item" href="#javascript">JavaScript</a>
		<a class="dropdown-item" href="#jquery">jQuery</a>
		<a class="dropdown-item" href="#php">PHP</a>
		<a class="dropdown-item" href="#system-design">システム設計</a>
		<a class="dropdown-item" href="#tools">ツール</a>
		<a class="dropdown-item" href="#windows">Windows</a>
		<a class="dropdown-item" href="#work">作業場所</a>


	</div>
</div>


<div style='margin-left:-38px;margin-bottom:1000px;'>
<ul>
<?php recursionFiles( realpath("./") ) ?>
</ul>
</div>
</body>
</html>
<?php

// ***********************************************
// 再帰によるファイル一覧作成
// ***********************************************
function recursionFiles( $target ) {

	$GLOBALS['level']++;

	// パターンにマッチするパス名を探す
	$files = glob( "{$target}/*" );

	foreach ( $files as $file ) {
		// ファイル
		if (is_file($file)) {
			$path_parts = pathinfo($file);
			if ( $path_parts['extension'] == "doc" || $path_parts['extension'] == "line" || $path_parts['extension'] == "ttl" || $path_parts['extension'] == "menu" ) {
				continue;
			}
			if ( $path_parts['extension'] == "png" || $path_parts['extension'] == "jpg" ) {
				continue;
			}

			$target = $path_parts['basename'];
			$ttl = $path_parts['dirname'] . "/" . $path_parts['filename'] . ".ttl";
			if ( file_exists( $ttl ) ) {
				$target = file_get_contents( $ttl );
			}
			$url = str_replace("/home/lightbox/www/homepage", "", $path_parts['dirname']);

			if ( $target == "list1.php" || $target == "list2.php" || $target == "list3.php" || $target == "list4.php" ) {
				continue;
			}

			// 配列に追加
			print "<li><a style='color:black' href=\"{$url}/?src={$path_parts['basename']}\">{$target}</a></li>";
		}
		// フォルダ
		else {
			$url = str_replace("/home/lightbox/www/homepage", "", $file);
			$path_parts = pathinfo($url);
			if ( $path_parts['basename'] == "image" || $path_parts['basename'] == "log" ) {
				continue;
			}

			if ( $GLOBALS['level'] == 1 ) {
				print "<li id=\"{$path_parts['basename']}\" class=\"alert alert-primary\" style='padding:10px;margin-top:25px;list-style:none;'><a href=\"{$url}\">{$path_parts['basename']}</a></li>";
			}
			else {
				print "<li id=\"{$path_parts['basename']}\" style='margin-top:10px;'><a class=\"btn btn-outline-primary\" style='width:200px;text-align:left;' href=\"{$url}\">{$path_parts['basename']}</a></li>";
			}
			print "<UL style='margin-bottom:20px;'>";
			// 再帰でさらにフォルダ内を探索する
			recursionFiles($file);
			print "</UL>";
		}
	}

	$GLOBALS['level']--;

}



?>