티스토리 뷰
[질문한 사람]
물어보기도 많이 민망할 정도로 아주 기초적이라고 생각하실텐데.. 처음 배우는 입장에서 궁금한점 질문드립니다. 교재를 보며 php 학습하는데 폴더 생성, 열기, 닫기 이 부분에 대해 학습하고있습니다. 교재에서 보면 opendir 함수로 폴더를 열어주고 closedir 함수로 폴더를 닫아주던데 열어서 결과값을 받아냈는데 굳이 꼭 closedir 함수로 폴더를 닫아주는 이유가 궁금합니다. 너무 기본적인 질문인거 같은데.. 잘 모르겠어서요ㅠㅠㅠㅠ
$folderName = '../php/';
//디엑터리가 있는지 확인
if (is_dir($folderName)) {
echo '폴더가 존재합니다.';
$opendir = opendir($folderName);
if($opendir) {
echo '폴더를 열었습니다.';
while($readdir = readdir($opendir)) {
echo $readdir.'';
}
closedir($opendir);
} else {
echo '폴더를 열지 못했습니다.';
}
} else echo '폴더가 존재하지 않습니다.';
[답변]
보통 저런 류는 PHP 자체 말고 다른 곳에 연결해서 사용하는 류임.
opendir은 파일 시스템에접속해서 사용하는 것이고 그 접속이 계속 남아 있음 PHP같은 경우라면 PHP파일이 끝나면 자동으로 close 해주니깐 별 상관 없는 경우가 많음.
하지만 그게 아니라 계속계속 open 이 쌓이면 이게 문제가 됨 커넥션 만큼 메모리 먹고, 최대 커넥션 등의 제한에도 걸릴 수 있음.
심지어 락 걸려서 다른 PHP에서는 사용 못 하는 경우 때문에 데드락 발생 할 수도 있음.
그래서 프로그래밍쪽에선 open 했으면, 다 쎴으면 닫아주는게 정석임.
[출처]
https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&wr_id=473369
'PHP' 카테고리의 다른 글
[PHP] 디렉토리의 파일을 가져와서 활용하는 방법 (0) | 2022.04.10 |
---|---|
[PHP] URL 매개변수(URL Parameter) (0) | 2022.04.09 |
[PHP] 설정 (0) | 2022.04.06 |
댓글