PHP 주요레퍼런스/파일 시스템 함수

parse_ini_file

웹 개발자의 비상 2011. 8. 8. 14:39
array parse_ini_file(string filename [, bool process_sections])
환경설정 파일을 파싱한다.

filename을 읽어들여 연관 배열로 반환한다. 파일에서 정의한 환경 설정 항목의 이름을 원소의 문자열 키로 갖고
해당 항목에 할당된 값을 원소의 값으로 갖는다.

함수명이 의미하듯이 환경설정파일을 만들어 사용할 때 유용하다.
이때 환경설정파일인 filename의 구조가 중요한데 반듯이 php.ini의 파일과 동일한 구조를 가져야 한다.

한편 process_sections를 TRUE로 설정하면 filename의 구조를 다차원 배열로 반환할 수 있다.

php.ini의 구조

[Syslog]
define_syslog_variables = off

[mail function]
;For Win32 only
SMTP = localhost
smtp_port=25


board.ini의 구조

; 데이터베이스 연결을 위한 설정 항목

[Connection]
hostname = localhost; //서버명
name = asoto; //dbname
password = union;
dbname = asotoDB;

;방명록의 페이징 설정

[Paging]
num_per_page = 10;
page_per_block = 10;
is_tag_allowed = Y;


예제

<?
// 각각의 환경설정 항목과 그 값을 배열로 반환한다.
$ini_info1 = parse_ini_file("board.ini");
print_r($ini_info1);
/*
Array
(
[hostname] => localhost
[name] => asoto
[password] => union
[dbname] => asotoDB
[num_per_page] => 10
[page_per_block] => 10
[is_tag_allowed] => Y
)
*/

// 각각의 환경설정 항목과 그 값을 섹션별로 나누어 다차원 배열로 반환한다.
$ini_info2 = parse_ini_file("board.ini", TRUE);
print_r($ini_info2);
/*
Array
(
[Connection] => Array
(
[hostname] => localhost
[name] => asoto
[password] => union
[dbname] => asotoDB
)

[Paging] => Array
(
[num_per_page] => 10
[page_per_block] => 10
[is_tag_allowed] => Y
)

)
*/
?>

이련식으로 환경변수를 만들경우 관리는 편할 수 있겠지만 주소를 알아내 ini파일 자체를 웹프라우저에서 호출할 경우 모든 환경 변수들이 출력되 버리므로 보안상 안 좋을 듯 하다.



728x90

'PHP 주요레퍼런스 > 파일 시스템 함수' 카테고리의 다른 글

is_uploaded_file / move_uploaded_file  (0) 2011.08.08
ftell  (0) 2011.08.08
rewind  (0) 2011.08.08
pathinfo  (0) 2011.08.08
dirname  (0) 2011.08.08