반응형
말랑Cow
IT
말랑Cow
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Linux (33)
    • Windows (6)
    • Network (7)
    • Hardware (10)
    • Zabbix (13)
    • python (9)
    • script (0)
    • docker (16)
    • NAS (1)
    • DB (3)
    • php (33)
    • jQuery (1)
    • 정보보안기사 (0)
    • Ajax (1)
    • Javascript (21)
    • DELL (0)
    • HPE (0)
    • Secui (0)
    • AWS (2)
    • Elastic (0)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자빅스
  • 서버
  • bash
  • 모니터링
  • Linux
  • jQuery
  • php 클래스
  • php
  • Shell
  • CentOS
  • 도커
  • 자바스크립트
  • 네트워크
  • php 객체
  • 리눅스
  • JavaScript
  • Python
  • 파이썬
  • docker
  • ZABBIX
hELLO · Designed By 정상우.
말랑Cow

IT

[php 내장함수] 파일 관련 함수
php

[php 내장함수] 파일 관련 함수

2021. 8. 25. 00:00
반응형

1. 존재 유무 확인

 

파일이나 디렉토리가 존재하는지 안하는지 확인하는 함수입니다.

 

is_file()		# 파일의 존재 유무 확인
is_dir()		# 디렉토리의 존재 유무 확인
file_exists()	# 파일 혹은 디렉토리의 존재 유무 확인

test1.php 라는 파일을 만들어 놓은 상태입니다.

<?php

var_dump(is_dir('test1.php'));
echo "<br/>";
var_dump(is_file('test1.php'));
echo "<br/>";
var_dump(file_exists('test1.php'));

?>

 

존재한다면 true, 존재하지 않으면 false를 리턴합니다.

 

2. 파일 열기/닫기

 

파일을 읽고 수정하고 삭제하기 위해서는 먼저 파일을 열어야 합니다.

파일을 열 땐 다음과 같은 함수를 사용합니다.

fopen(파일명, 파일모드)

뒤에 매개변수를 하나 더 얹어서 context 라는 부분을 추가할 수 있지만 그 부분은 나중에,,

일단 기본적으론 위와 같이 사용합니다.

 

파일모드는 파일을 어떤식으로 열고 어떤 작업이 가능한지 설정합니다. 다음과 같습니다.


r : 읽기전용
w : 쓰기전용(파일존재 시 내용삭제 / 파일없을 시 생성)

x : 쓰기전용(파일존재 시 에러 / 파일없을 시 생성)
a : 쓰기전용(파일존재 시 맨 끝으로 이동 / 파일없을 시 생성)
c : 쓰기전용(파일존재 시 맨 처음으로 이동 / 파일없을 시 생성)

r+ : 읽기/쓰기
w+ : 읽기/쓰기(파일존재 시 내용삭제 / 파일없을 시 생성)
x+ : 읽기/쓰기(파일존재 시 에러 / 파일없을 시 생성)

a+ : 읽기/쓰기(파일존재 시 맨 끝으로 이동 / 파일없을 시 생성)
c+ : 읽기/쓰기(파일존재 시 맨 처음으로 이동 / 파일없을 시 생성)


r 모드를 제외하고 나머지 모드는 파일이 존재하지 않으면 생성합니다.

'+' 가 붙으면 읽기와 쓰기가 가능한 모드라고 생각하면 되겠습니다.(리눅스 권한에서 rw-)

 

 

파일을 사용하기 위해 연 후에는 반드시 닫아야 합니다. 이때 fclose를 사용합니다.

fclose()

fopen() 함수로 생성한 리소스를 fclose() 함수의 인자로 넘겨주며 파일이 닫힙니다.

무슨말이냐면,

<?php

$a = fopen('test.txt', 'r');
...
...
fclose($a);

?>

test.txt 를 읽기전용모드로 열었으며 그 내용을 $a 변수에 담았습니다.

중간에 어떠한 작업을 하고 닫을 땐 fopen 함수의 내용 자체를 담은 변수 $a를 fclose인자값으로 주어 닫는겁니다.

 

3. 파일의 내용을 읽기

 

파일을 연 후에는 내용을 읽거나 쓸 수 있습니다.

읽거나 쓰는 함수들의 인자는 fopen() 함수로 열어놓은 리소스를 받습니다.

그러니까,

$a = fopen('test.txt', 'r');

이런식으로 변수에 담는 행위는 모두 읽거나 쓰기를 위한 함수를 사용할 때 인자값으로 넣기 위함입니다.

 

내용을 읽는 함수는 다양한데 하나씩 보겠습니다.

 

- fgetc

 

fgetc()는 파일에서 한 글자만 리턴합니다.

 

- fgets

 

fgets()는 파일에서 한 줄씩 리턴합니다.

 

- fread

 

위 두 개의 함수들은 fopen함수로 열어놓은 리소스만을 인자로 받지만, fread()는 fopen함수로 열어놓은 리소스와 int $length 를 매개변수로 받습니다.

뒤에 있는 값 만큼 읽을 때 사용합니다.

 

간단히 코드로 보겠습니다.

<?php

$a = fopen('test.txt', 'r');

$b = filesize('test.txt');

echo fread($a, $b)."<br/>";
echo $b;

?>

test.txt 파일을 29라는 길이 만큼 읽어옵니다.

 

4. 파일에 내용 쓰기

 

- fwrite

fwrite(fopen리소스, 입력할 내용, 얼마만큼 입력 할 것인가)

이때 입력되는 위치는 fopen함수의 파일모드에 따라 달라집니다.

w,x,c의 경우 파일의 앞부분, a의 경우 파일의 끝부분, 파일을 읽어들였다면 읽은 그 위치입니다.

 

5. 간단히 파일을 읽고 쓰기

 

파일을 읽고 쓰기 위해서는 fopen으로 열고 fclose로 닫고 중간에 읽고 쓰거나 할 함수를 사용해야 합니다.

이런 번거로움을 피하기 위해 간단하게 사용할 수 있는 함수가 있습니다.

 

- file_get_contents()

file_get_contents(파일명, 경로, 특정 스트림, 읽을 위치, 읽을 내용의 길이)

이 함수는 5개의 매개변수를 갖습니다.

첫 번째는 파일명을 입력합니다.

두 번째는 특정 경로를 포함시키는 것을 의미합니다. 즉, 현재 파일 기준 뿐 아니라 입력된 경로도 찾습니다.

세 번째는 fopen()함수와 같이 다른 stream을 사용할 때 특정 stream을 사용합니다.

네 번째는 파일을 읽을 위치를 설정하며, 다섯 번째는 읽을 내용의 길이를 설정합니다.

 

- file_put_contents()

file_put_contents(파일명, 저장할 내용, 저장할 방법, 스트림)

 

 

<?php

$filename = 'test.txt';

$content = file_get_contents($filename);

echo $content."<br/>";
echo nl2br($content);

?>

 

6. 기타 파일 정보

 

- filesize()

 

파일의 크기를 리턴

 

- basename()

 

경로에서 파일명을 리턴

 

- dirname()

 

디렉토리명을 리턴 

반응형

'php' 카테고리의 다른 글

[HTML Form을 통한 데이터 전송] POST, GET  (0) 2021.08.27
[php 내장함수] 네트워크 관련 함수  (0) 2021.08.26
[php 내장함수] 배열 관련 함수  (0) 2021.08.24
[php 내장함수] 날짜 관련 함수  (0) 2021.08.23
[php 내장함수] 문자 관련 함수  (0) 2021.08.22
    'php' 카테고리의 다른 글
    • [HTML Form을 통한 데이터 전송] POST, GET
    • [php 내장함수] 네트워크 관련 함수
    • [php 내장함수] 배열 관련 함수
    • [php 내장함수] 날짜 관련 함수
    말랑Cow
    말랑Cow

    티스토리툴바