php 입문 | 텍스트 파일 이용 | readfile을 이용한 텍스트 파일 로드


텍스트 파일의 내용을 읽어 표시하는 것은 PHP에서는 놀라울 정도로 간단하다. 그대로 “지정된 텍스트 파일을 로드하고 표시한다"는 것을 해주는 함수가 준비되어 있다.

실제로 해보자. 먼저 텍스트 파일을 준비한다. 실행하는 PHP 파일 (여기에서는 index.php)와 같은 위치에 “data.txt"라는 텍스트 파일을 생성하고, 그 안에 적당히 텍스트를 써 넣는다. 이것은 PHP와 마찬가지로 UTF-8 인코딩으로 저장한다. 인코딩이 다르면 문자가 깨진다.

파일이 준비 되면, 스크립트를 만들자. index.php에 아래와 같이 소스 코드를 작성한다.

<!DOCTYPE html>
<html lang="ko">
    <head> 
        <meta http-equiv="Content-Type"
            content="text/html; charset=UTF-8" /> 
        <title>sample page</title>
    </head>
    <body>
        <h1>Hello PHP!</h1>
        <p><?php readfile("data.txt"); ?></p>
    </body>
</html>

그리고 페이지를 접속해 보면, 텍스트 파일의 내용이 그대로 표시될 것이다.

여기에서 사용하고 있는 PHP 스크립트는 바디(body) 부분에 써 있는 단 한 줄의 함수뿐이다. 해당 함수 부분은 아래와 같다.

<?php readfile("data.txt"); ?>

이 “readfile"라고 하는 것이 ()에 지정된 파일을 읽어 들여 그 자리에 내보내는 함수이다. 텍스트를 표시할 위치에 이 함수를 써두는 것만으로 거기에 파일의 내용이 출력된다. echo로 출력할 필요도 없다. 단지, readfile 함수만 있으면 된다.

그러나 실제로 해보면 이것으로는 여러가지 부족함이 있을 것이다. 먼저 여러 줄의 텍스트가 써있어도 줄 바꿈되지 않고 표시된다. HTML에서 <br> 태그을 사용하여 줄 바꿈을 해주지 않으면 안되기 때문이다. readfile은 줄 바꿈을 자동으로 <br>로 변환해 주거나 하지 않는다.

또한, 꺼낸 텍스트를 그대로 써 넣기 때문에 부분적으로 뭔가 처리를 하고 싶은 경우에는 이를 사용할 수 없다. 어디 까지나 내용을 통째로 거기에 단순히 꺼낼 뿐이다.