티스토리 뷰

[질문한 사람]

물어보기도 많이 민망할 정도로 아주 기초적이라고 생각하실텐데..  처음 배우는 입장에서 궁금한점 질문드립니다.  교재를 보며 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함