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

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>list3.php</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.1/css/bootstrap.css">
</head>
<body>
<ul>
<?php recursionFiles( realpath("./") ) ?>
</ul>
</body>
</html>
<?php

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

	// パターンにマッチするパス名を探す
	$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" ) {
				continue;
			}
			if ( $path_parts['extension'] == "png" || $path_parts['extension'] == "jpg" ) {
				continue;
			}

			$url = str_replace("/home/lightbox/www/homepage", "", $path_parts['dirname']);

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

			print "<li><a href=\"{$url}\">{$path_parts['basename']}</a></li>";
			print "<UL>";
			// 再帰でさらにフォルダ内を探索する
			recursionFiles($file);
			print "</UL>";
		}
	}
}



?>