소스 파일 : /ex_run/open_src_testing.php (2019-09-30)     소스 설명 : (구현항목) 소스 폴더/파일 탐색 및 소스보기
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
<?php // (2019.9.27, 차재복, Cha Jae Bok, cjbword@gmailcom) 

# 파라미터 전달
	$dir_arg = $_GET['dir'];	// 디렉토리명
        if (strlen($dir_arg)>10) exit; // 해킹 방어

# 세션 스타트 (매 웹페이지 마다 필요)
	session_start();

# db 설정 (정보통신기술용어 db)
	include_once "../base_utils/db_conn.php";
		// 이로부터 db 접속 성공의 결과로써, $dbi 변수가 넘어옴

# db 내 src_files 테이블에 대한 쿼리 실행
    $query = "select * from src_files order by dir,filename ";
	$result = mysqli_query($dbi, $query);
	while ( $matched = mysqli_fetch_assoc($result) ) {
        $rows[$matched[dir]][] = $matched;
    }

# 대상 폴더 탐색
    // 대상 폴더명/파일명 배열화
    $scanned = scandir('../');
//    echo "<pre>";print_r($scanned);echo "</pre>";
    $dirnames = array_diff( $scanned, array('..', '.','backup','knowledge','yoyak_v2'));

    // 각 폴더별로 탐색
    foreach ($dirnames as $name) {
        if (is_dir('../'.$name)) {
            echo '[';
            echo "<a href='#' class='dir' data-name='{$name}'>$name</a>";
            echo '] &nbsp; ';
        }
    }

    echo "<br><br>";

    if ( empty($dir_arg) ) $dir_arg = 'base_utils';
    echo $dir_arg.' : ';
    foreach ($rows[$dir_arg] as $value) {
    	echo "<a href='../open_src/view_src.php?file={$value[filename]}&dir={$dir_arg}'>";
            echo $value[filename];
        echo "</a>";
        echo " &nbsp; ";
    }

?>

Copyrightⓒ written by 차재복 (Cha Jae Bok)