웹마스터 팁

파일 처리 관련 함수
PHP에서는 다음과 같은 파일 처리 관련 함수를 지원하며, 파일처리함수는 MYSQL과 같은 DB를 사용하지 않고 파일을 사용한 프로그램 제작시 상당히 많이 쓰이게 되므로 파일처리 함수를 많이 알고 있으면.. 큰 도움이 됩니다.

함수명 내용
fopen 파일을 지정한 모드로 연다.
fclose fopen 함수로 연 파일을 닫는다.
fread 파일에서 특정 byte수 만큼 읽어서 문자열로 반환한다.
fwrite 파일에 문자열이나 숫자등을 쓴다.
feof 파일 포인터의 위차가 파일의 끝인지 검사한다.
fgets 지정한 파일에서 개행문자나 EOF를 만나기 전까지 특정 byte수만큼 읽어들인다.
fputs 파일에서 특정 byte수 만큼 읽어들여 문자열로 반환한다.
fpassthru 파일 포인터가 가리키는 현재의 위치에서 파일의 끝까지를 읽어들여 표준 출력 장치로 출력한다.
readfile 파일을 읽어 표준 출력장치에 출력한다.
fgetc 파일로부터 한 문자를 읽어들인다.
filesize 파일의 크기를 byte수로 반환한다.
file_exists 파일이 존재하는지 검사한다.
is_file 파일인지 검사한다.
is_dir 디렉토리인지 검사한다.
is_link 심볼릭 링크인지 검사한다.
is_executable 싱행가능한 파일인지 검사한다.
is_readable 읽을 수 있는 파일인지 검사한다.
is_writeable 쓸 수 있는 파일인지 검사한다.
copy 파일을 복사한다.
rename 파일이름을 바꾼다.
unlink 파일을 삭제한다.
mkdir 디렉토리를 만든다.
rmdir 디렉토리를 삭제한다.
basename 파일에 대한 경로명 중 확장자를 포함한 파일 이름만을 반환한다.
dirname 파일에 대한 경로명 중 디렉토리명만을 반환한다.
file 파일의 내용을 읽어서 배열로 반환한다.


fopen 함수

fopen() 함수는 다음과 같이 정의됩니다.

$변수 = fopen("지정파일" , "지정모드");
파일을 지정한 모드로 열어서 $변수에 반환합니다.. 이때 $변수는 핸들(HANDLE) 로 보시면 됩니다..



$fp = fopen( "test.txt" , "w");

if ( $fp ) {
echo "test.txt 파일을 쓰기모드로 열었습니다.";
}
else {
echo "test.txt파일을 쓰기모드로 여는데 실패했습니다.";
}

fclose 함수

fclose() 함수는 다음과 같이 정의됩니다.

fclose($변수);
fopen() 함수로 연 파일의 $변수(HANDLE)를 닫아줍니다.


$fp = fopen("test.txt", "W");
fclose($fp);
?>

fread 함수

fread() 함수는 다음과 같이 정의됩니다.

$변수 = fread($핸들 , 지정byte);

fopen()함수로 연 HANDLE에서 지정byte 만큼 읽어서 $변수에 반환한다.

$fp = fopen("test.txt", "r");

$data = fread($fp , 100);

echo "$data";

fclose($fp);
?>

fwrite 함수

fwrite($핸들변수 , $데이터변수, $기록할 byte);

fopen() 함수로 연 파일에 $데이터변수가 가지고 있는 값을 $기록할 byte만큼 기록한다. $기록할 byte가 없을 경우 $데이터 변수가 가지고 있는 값을 모두 기록한다. (fputs 함수와 동일하다.)

$fp = fopen("test.txt", "w");
fwrite($fp, "PHP는 재미있다.");
fclose($fp);
?>

readfile 함수

$변수 = readfile($지정파일);
$지정파일을 읽어서 $지정파일의 byte값을 $변수에 정수값으로 반환한다. ( filesize 함수와 동일 )


 

file_exists 함수

$변수 = file_exists($지정파일);
$지정파일이 존재하면 1(true)을 존재하지 않으면 0(false) 을 $변수에 반환한다.


if ( file_exists( "./data/test.txt" ) )
{
echo "./data/test.txt 파일이 존재합니다.";
}
?>

is_file 함수

$변수 = is_file($지정파일);
$지정파일이 정상적인 파일이면 1(true)을 존재하지 않으면 0(false) 을 $변수에 반환한다.


is_dir() , is_link() , is_executable() , is_readable() , is_writeable() 함수들도 마찬가지로 지정한 디렉토리 및 파일이 참이면 true를 거짓이면 false를 반환합니다.

copy 함수

$변수 = copy($원본파일, $복사될파일);
$원본파일을 $복사될파일로 복사하면 1(true)을 복사하지 못하면 0(false) 을 $변수에 반환한다.


rename 함수

$변수 = rename($원본파일이름, $바꿀파일이름);
$원본파일이름을 $바꿀파일이름으로 바꾸면 1(true)을 바꾸지 못하면 0(false) 을 $변수에 반환한다.


unlink 함수

$변수 = unlink($지울파일);
$지울파일을 삭제하면 1(true)을 삭제하지 못하면 0(false) 을 $변수에 반환한다.


if ( !unlink( "./test.txt" ) ) {
echo "test.txt 파일이 삭제되지 않았습니다.";
}
?>

디렉토리 삭제는 rmdir() 함수를 사용합니다.

mkdir 함수

$변수 = mkdir($만들디렉토리이름, 퍼미션);
$만들디렉토리이름을 퍼미션값에 따라 만들면 1(true)을 만들지 못하면 0(false) 을 $변수에 반환한다.


if ( !mkdir("dir", 0777) ) {
echo "dir 디렉토리를 만들지 못했습니다";
}
?>

file 함수

$변수 = file($읽을파일);
$읽을파일을 읽어서 배열(array)의 형태로 $변수에 반환한다.


$file = file("data.txt");
while( $data = each($file) ) {
echo "$data[1]";
}
?>

[참고]배열의 형태로 반환을 하기 때문에 echo "$file"; 과 같이 출력할 경우 array 라는 출력값을 보입니다.. 그러므로 위와 같은 while문을 이용해야 data.txt파일안에 들어있는 모든 데이터를 출력할 수 있습니다..