본문 바로가기
PHP

[PHP]파일과 디렉토리 제어

by 남민섭 2022. 12. 22.
728x90
반응형

isset() 

변수가 존재하는지 확인
설정이 되었으면 true 
설정이 되지 않았으면 false를 반환

 

null값일때만 false 나머지는 true

 

empty()

변수가 비어있는지 확인
비어있으면 true
비어있지 않다면 false를 반환

 

다음을 비어있는 것으로 판단

 

  • "" (빈 문자열)
  • 0 (정수 0)
  • "0" (문자열 0)
  • NULL
  • FALSE
  • array() (빈 배열)
  • var $var; (클래스 안에서 값 없이 선언된 변수)

 

<?php
        $testInt1 = 0;
        $testInt2 = 100;
        $testStr1 = "0";
        $testStr2 = "100";
        $testStr3 = "abcd";
        $testStr4 = "";
        $testbool1 = true;
        $testbool2 = false;
        $testnull = null;

        //isset($var) 변수가 설정되었는지 확인
        //설정이 되었으면 true 설정이 되지 않았으면 false를 반환
        //empty($var) 변수가 비어있는지 확인
        //비어있으면 true비어있지 않다면 false를 반환
        //0는 비어있다고 인식
        //1. int 0
        echo empty($testInt1) ? "int 0 empty는 Y <br/>"
        : "int 0 empty는 N <br/>"; //비어있는지 체크
        echo isset($testInt1) ? "int 0 isset는 Y <br/>"
        : "int 0 isset은 N <br/>"; //null이 아닌지 체크


        //2. int 0외의 숫자
        echo empty($testInt2) ? "int 100 empty는 Y <br/>"
        : "int 100 empty는 N <br/>"; //비어있는지 체크
        echo isset($testInt2) ? "int 100 isset는 Y <br/>"
        : "int 100 isset은 N <br/>"; //null이 아닌지 체크

        //3. str "0"
        echo empty($testStr1) ? "str '0' empty는 Y <br/>"
        : "str '0' empty는 N <br/>"; //비어있는지 체크
        echo isset($testStr1) ? "str '0' isset는 Y <br/>"
        : "str '0' isset은 N <br/>"; //null이 아닌지 체크

        //4. str "100"
        echo empty($testStr2) ? "str '100' empty는 Y <br/>"
        : "str '100' empty는 N <br/>"; //비어있는지 체크
        echo isset($testStr2) ? "str '100' isset는 Y <br/>"
        : "str '100' isset은 N <br/>"; //null이 아닌지 체크

        //5. str "abcd"
        echo empty($testStr3) ? "str 'abcd' empty는 Y <br/>"
        : "str 'abcd' empty는 N <br/>"; //비어있는지 체크
        echo isset($testStr3) ? "str 'abcd' isset는 Y <br/>"
        : "str 'abcd' isset은 N <br/>"; //null이 아닌지 체크

        //6. str ""
        echo empty($testStr4) ? "str '' empty는 Y <br/>"
        : "str '' empty는 N <br/>"; //비어있는지 체크
        echo isset($testStr4) ? "str '' isset는 Y <br/>"
        : "str '' isset은 N <br/>"; //null이 아닌지 체크

        //7. bool true
        echo empty($testbool1) ? "boolean true empty는 Y <br/>"
        : "boolean true empty는 N <br/>"; //비어있는지 체크
        echo isset($testbool1) ? "boolean true isset는 Y <br/>"
        : "boolean true isset은 N <br/>"; //null이 아닌지 체크

        //8. bool false
        echo empty($testbool2) ? "boolean false empty는 Y <br/>"
        : "boolean false empty는 N <br/>"; //비어있는지 체크
        echo isset($testbool2) ? "boolean false isset는 Y <br/>"
        : "boolean false isset은 N <br/>"; //null이 아닌지 체크

        //9. null
        echo empty($testnull) ? "null empty는 Y <br/>"
        : "null empty는 N <br/>"; //비어있는지 체크
        echo isset($testnull) ? "null isset는 Y <br/>"
        : "null isset은 N <br/>"; //null이 아닌지 체크
    ?>

 

데이터 타입
isset()
empty()
숫자
0일때 true리턴
0외의 숫자 true리턴
0일때 true리턴
0외의 숫자 false리턴
문자열
문자열 "0"일때 true리턴
문자열 "100"일때 true리턴
문자열 "abc"일때 true리턴
빈문자열 true리턴
문자열 "0"일때 true리턴
문자열 "100"일때 false리턴
문자열 "abc"일때 false리턴
빈문자열 true리턴
블리언
true 일때 true리턴
false 일때 true리턴
true 일때 false리턴
false 일때 true리턴
null
false리턴

true리턴

 

파일 존재 여부 확인

 

file_exists()함수

전달받은 파일이나 디렉터리가 존재하는지 검사

파일을 열기 전에 먼저 해당 파일이 존재하는지 확인

 

예시)

<?php
    if(file_exists("list.txt")) {
        echo"파일이 존재합니다."
    }else {
        echo"파일이 존재하지 않습니다.";
    }
?>

 

파일 크기 확인 

 

filesize()함수

전달받은 파일의 크기를 바이트 값으로 반환

 

예시)

<?php
    echo filesize("list.txt");
?>

 

*대부분 운영체제에서 PHP의 정수 타입으로 32비트 정수 사용

파일크기가 2GB보다 크면, filesize() 한수는 예상치 못한 결과 반환

 

파일 삭제

 

unlink()함수

전달 받은 주소에 위치한 파일을 삭제

 

파일을 정상적으로 삭제했을 때 true

 

파일을 지울수 있는 권한이 없거나

파일이 존재하지 않거나 정상적으로 삭제 되지 못했을 때 false

 

예시)

<?php
    unlink("deleteme.txt);
?>

 

파일 복사

copy()함수

파일명과 파일내용을 전달 받아 파일 복사

 

예시)

<?php
    $file = 'readme.txt';
    $newfile = 'example.txt.bak';
    if(!copy($file, $newfile)){
        echo "failed to copy $file..$n";
    }
?>

 

파일 읽기

file_get_contents("파일경로");

PHP로 텍스트 파일을 읽고 화면에 출력

 

예시)

<?php
    $file = "./readme.txt";
    echo file_get_contents($file);
?>

 

파일 읽기

네트워크 통해서 데이터 읽기

 

예시)

<?php
    $homepage = file_get_contents("http://php.net/manual/en/function.file-get-contents.php");
    echo $homepage;
?>

 

파일 쓰기

file_put_contents(파일이름, 파일내용);

네트워크를 통해서 데이터 읽기

 

예시)

<?php
    $file="./write.txt";
    file_put_contents($file, "coding everybody");
?>

 

디렉토리의 탐색

 

scandir(경로)

 

디렉토리를 탐색하는 기능

첫번째 인자는 탐색할 디렉토리 경로, 두번째 인자는 정렬방법

 

<?php
    $dir = "./";
    $files1 = scandir($dir);
    $files2 = scandir($dir, 1);
    print_r($files1);
    print_r($files2);
?>

 

디렉토리의 생성

 

mkdir()

디렉토리를 생성하는 내장 함수

 

첫번째 인자는 디렉토리 이름

 

두번째 인자는 디렉토리 권한 지정

 

세번째 인자의 값을 true를 지정하면 첫번째 인자에 주어진 경로가 여러개 디렉토리일 경우

해당 디렉토리를 한번에 생성하는 기능

 

 

파일 다루기

 

폴더 파일 배열로 반환 scandir("파일경로")

파일 내용 반환 file_get_contents("파일경로")

파일 내용 수정 file_put_contents("파일경로","파일 내용")

파일 이름 변경 rename(oldname, newname);

파일 삭제 unlink("파일경로");

 

파일 불러오기

 

include "파일경로"
☞다른 파일을 현재 파일에 포함(여러번 포함 가능)

include_once "파일경로"
다른 파일을 현재 파일에 포함(1번만 포함)

 

▶ 상대경로

include "상대경로명" 

상대경로는 현재 위치를 기준으로 하여 목적지까지의 상대적인 경로를 의미함

특징은 최상위 / 를 거치지 않고도 이동이 가능함

더보기

ex) include_once "../process/edit_process.php";

 

▶ 절대 경로

절대 경로는 처음부터 시작하여 목적지까지의 절대적인 경로를 의미함

특징은 최상위 /를 포함하고 있음

$_SERVER["DOCUMENT_ROOT"] =>최상위 경로

 

더보기

ex) include_once $_SERVER["DOCUMENT_ROOT"]."/process/edit_process.php"

 

리다이렉트

header("Location: 경로");

예로 여러가지 이유로 a.php로 접속했을 때 b.php로 자동 이동하게 만듬

 

728x90
반응형

'PHP' 카테고리의 다른 글

[PHP] 문자열 내장함수  (0) 2022.12.26
[PHP] 비밀번호 암호화  (0) 2022.12.26
[PHP]폼과 전송방식  (0) 2022.12.19
[PHP]배열  (0) 2022.12.18
파일과 디렉토리 제어  (0) 2022.12.18

댓글