PHP

PHP로 파일 읽기 및 쓰기

thebasics 2024. 8. 31. 10:00

목차
1. 파일 열기/닫기
   - 파일 열기 ('fopen')
   - 파일 닫기 ('fclose')
2. 파일 읽기
   - fread 사용법
   - fgets 사용법
   - file_get_contents 사용법
3. 파일 쓰기
   - fwrite 사용법
   - file_put_contents 사용법
4. 파일 삭제 및 기타 작업
   - 파일 삭제
   - 파일 복사, 이동, 이름 변경
5. 코드 예제
6. 결론 및 추가 학습 자료


1. 파일 열기/닫기

PHP에서 파일 작업을 하기 위해서는 먼저 파일을 열어야 하며, 작업이 끝난 후에는 파일을 닫아야 합니다.

파일 열기 ('fopen')

'fopen' 함수는 파일을 열고, 파일에 대한 핸들을 반환합니다. 이 핸들을 사용하여 파일을 읽거나 쓸 수 있습니다. 'fopen' 함수는 두 개의 인수를 받습니다: 파일 경로와 모드입니다. 모드는 파일을 열 때의 동작을 지정합니다.

- ''r'': 읽기 전용 모드로 파일을 엽니다. 파일이 존재해야 합니다.
- ''w'': 쓰기 전용 모드로 파일을 엽니다. 파일이 존재하지 않으면 새로 만듭니다.
- ''a'': 추가 모드로 파일을 엽니다. 파일 끝에 데이터를 추가합니다.
- ''x'': 쓰기 전용으로 새 파일을 만듭니다. 파일이 이미 존재하면 'fopen'은 실패합니다.

<?php
$file = fopen("example.txt", "r");

if ($file) {
    echo "파일이 성공적으로 열렸습니다.";
} else {
    echo "파일을 여는 데 실패했습니다.";
}
?>

파일 닫기 ('fclose')

'fclose' 함수는 열린 파일을 닫습니다. 파일을 닫지 않으면 파일이 손상되거나 데이터가 손실될 수 있습니다.

<?php
fclose($file);
echo "파일이 닫혔습니다.";
?>

2. 파일 읽기

파일을 열었다면, 이제 파일의 내용을 읽을 수 있습니다. PHP는 파일을 읽기 위한 여러 함수를 제공합니다.

fread 사용법

'fread' 함수는 파일의 내용을 읽어들입니다. 이 함수는 두 개의 인수를 받습니다: 파일 핸들과 읽을 바이트 수입니다.

<?php
$file = fopen("example.txt", "r");
$content = fread($file, filesize("example.txt"));
fclose($file);

echo "파일 내용: \n" . $content;
?>

fgets 사용법

'fgets' 함수는 파일에서 한 줄씩 읽어옵니다. 주로 텍스트 파일을 한 줄씩 처리할 때 유용합니다.

<?php
$file = fopen("example.txt", "r");

while (!feof($file)) {
    $line = fgets($file);
    echo $line . "<br>";
}

fclose($file);
?>

file_get_contents 사용법

'file_get_contents' 함수는 파일의 전체 내용을 문자열로 읽어옵니다. 이 함수는 파일을 열고, 읽고, 닫는 과정을 한 번에 처리합니다.

<?php
$content = file_get_contents("example.txt");
echo "파일 내용: \n" . $content;
?>

3. 파일 쓰기

파일에 데이터를 쓰기 위해서는 'fwrite' 또는 'file_put_contents' 함수를 사용할 수 있습니다.

fwrite 사용법

'fwrite' 함수는 파일에 데이터를 씁니다. 파일이 이미 존재하는 경우, 지정된 위치에 데이터를 씁니다. 추가 모드로 열면 파일 끝에 데이터를 추가할 수 있습니다.

<?php
$file = fopen("example.txt", "w");
$text = "새로운 내용이 파일에 쓰여집니다.";

if (fwrite($file, $text)) {
    echo "데이터가 파일에 성공적으로 쓰여졌습니다.";
} else {
    echo "데이터 쓰기 실패.";
}

fclose($file);
?>

file_put_contents 사용법

'file_put_contents' 함수는 파일에 데이터를 쓰는 가장 간단한 방법입니다. 이 함수는 파일을 열고, 데이터를 쓰고, 파일을 닫는 과정을 한 번에 처리합니다.

<?php
$text = "file_put_contents로 파일에 쓰여진 내용입니다.";
file_put_contents("example.txt", $text);

echo "데이터가 파일에 성공적으로 쓰여졌습니다.";
?>

4. 파일 삭제 및 기타 작업

파일을 삭제하거나 복사, 이동, 이름 변경 등의 작업을 PHP에서 쉽게 처리할 수 있습니다.

파일 삭제

'unlink' 함수는 파일을 삭제합니다. 파일이 삭제되면 함수는 'true'를 반환하고, 실패하면 'false'를 반환합니다.

<?php
if (unlink("example.txt")) {
    echo "파일이 성공적으로 삭제되었습니다.";
} else {
    echo "파일 삭제에 실패했습니다.";
}
?>

파일 복사, 이동, 이름 변경

PHP에서 파일을 복사하거나 이름을 변경하고 이동할 수 있는 여러 가지 함수가 있습니다.

- 파일 복사: 'copy' 함수는 파일을 복사합니다.
- 파일 이름 변경: 'rename' 함수는 파일 이름을 변경하거나, 파일을 다른 디렉터리로 이동합니다.

<?php
// 파일 복사
if (copy("example.txt", "copy_example.txt")) {
    echo "파일이 성공적으로 복사되었습니다.";
} else {
    echo "파일 복사에 실패했습니다.";
}

// 파일 이름 변경 (또는 이동)
if (rename("copy_example.txt", "renamed_example.txt")) {
    echo "파일 이름이 변경되었습니다.";
} else {
    echo "파일 이름 변경에 실패했습니다.";
}
?>

5. 코드 예제

파일 읽기, 쓰기, 삭제 및 기타 작업을 종합적으로 사용하는 예제를 작성해보겠습니다.

<?php
// 파일 쓰기 예제
$file = fopen("example.txt", "w");
$text = "이것은 PHP로 쓰여진 텍스트입니다.\n";
fwrite($file, $text);
fclose($file);

// 파일 읽기 예제
$file = fopen("example.txt", "r");
$content = fread($file, filesize("example.txt"));
fclose($file);
echo "파일 내용:\n" . $content;

// 파일에 데이터 추가 예제
$file = fopen("example.txt", "a");
$additionalText = "이것은 추가된 내용입니다.\n";
fwrite($file, $additionalText);
fclose($file);

// 파일 삭제 예제
if (unlink("example.txt")) {
    echo "파일이 성공적으로 삭제되었습니다.";
} else {
    echo "파일 삭제에 실패했습니다.";
}
?>

코드 분석:
- 이 예제에서는 파일을 쓰고, 읽고, 데이터를 추가하며, 마지막으로 파일을 삭제하는 작업을 수행합니다.
- 'fopen', 'fwrite', 'fread', 'unlink' 등 다양한 파일 처리 함수를 사용하여 파일 작업을 수행합니다.


6. 결론 및 추가 학습 자료

이번 글에서는 PHP에서 파일을 처리하는 방법에 대해 알아보았습니다. 파일을 열고 닫는 기본 작업부터 파일의 내용을 읽고 쓰는 다양한 방법까지 다루었습니다. 또한 파일을 삭제하거나 복사, 이동, 이름을 변경하는 방법도 살펴보았습니다. 이러한 파일 작업은 PHP에서 매우 중요한 기능으로, 데이터를 저장하고 관리하는 데 필수적입니다.

추가 학습 자료:
- [PHP 공식 문서](https://www.php.net/manual/en/book.filesystem.php) PHP 파일 시스템 함수에 대한 공식 문서입니다.
- [W3Schools PHP 파일 처리 튜토리얼](https://www.w3schools.com/php/php_file.asp) PHP에서 파일을 처리하는 방법을 다루는 튜토리얼입니다.
- [GeeksforGeeks PHP 파일 처리](https://www.geeksforgeeks.org/php-basics-file-handling/) 다양한 PHP 파일 처리 예제를 제공합니다.


이제 PHP 파일 처리에 대한 기본 개념을 이해했으니, 이를 바탕으로 실제 애플리케이션에서 파일을 관리하고 데이터를 효율적으로 처리할 수 있습니다. 지속적인 학습을 통해 PHP의 모든 가능성을 탐구해보시길 바랍니다!

반응형