파일내용을 읽어서 배열에 저장할 수 있나요?
본문
다음과 같이 파일이 있다고 했을 때,
default.menu.100.php
<?php
$default_menu['default_menu100'] = array(
array('100000', '회사소개', G5_URL . '/intro.php'),
array('100100', '회사소개', G5_URL . '/intro.php'),
array('100200', '회사연역', G5_URL . '/histroy.php'),
array('100300', '오시는길', G5_URL . '/map.php')
);
default.menu.100.php
<?php
$default_menu['default_menu200'] = array(
array('200000', '커뮤니티', G5_URL . '/board/notice.php'),
array('200100', '공지사항', G5_URL . '/board/notice.php'),
array('200200', '고객문의', G5_URL . '/board/customer.php'),
array('200300', 'FAQ', G5_URL . '/board/faq.php')
);
그리고 위 파일의 갯수가 가변적으로 바뀐닥 했을때
(default.menu.300.php, default.menu.400.php, default.menu.500.php...)
해당 파일들을 읽어올 수(?) 있나요?
여기서 읽는 다는 것은 default.menu.100.php에 적힌 배열을
해당 배열 값에 ($default_menu[]) 저장할 수 있나요?
!-->!-->
답변 2
질문이 이상합니다.
위 코드자체에서 이미 $default_menu 배열에 해당 값들을 선언하였기 때문에
당연히 $default_menu 배열에 해당 값들은 저장되어있습니다.
admin.menu[숫자3자리].php 를 무한으로 include 하는 코드가 있습니다.
* /adm/admin.lib.php
// 가변 메뉴
unset($auth_menu);
unset($menu);
unset($amenu);
$tmp = dir(G5_ADMIN_PATH);
$menu_files = array();
while ($entry = $tmp->read()) {
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$amenu[$m[1]] = $entry;
$menu_files[] = G5_ADMIN_PATH.'/'.$entry;
}
@asort($menu_files);
foreach($menu_files as $file){
include_once($file);
}
@ksort($amenu);