블로거 워누입니다!
오늘은 회사에서나 개인 프로젝트에서 요긴하게 쓰일만한 내용을 들고 왔습니다!
늘상 회사에서 써먹겠냐 생각하셨다면 맞습니다!(오늘도 쓰고 왔습니다.)
txt 파일을 만들고 내용을 작성하는 것이 의외로 많이 쓰이는데요,
프로그램을 만들고 나서 예상치 못한 오류를 추적하기 위해서 기록을 남기는 경우, 요청하거나 응답할 때 기록을 남겨놓는 경우, 중요한 값에 대한 백업이 필요하여 기록을 남기는 경우 혹은 예외처리가 필요한 구간에 기록을 남겨놓는 등 제가 본 케이스만 해도 엄청 많이 쓰이고 또 요긴하게 쓰이더라구요! 그래서 PHP로 (JSP나 다른 개발언어로도 한번 찾아뵙겠습니다!) 한번 만들어서 같이 공유해보고자 합니다!
.
회사에서 쓰는 느낌이 들게 html로 요청 페이지를 구성해보았습니다.
[요청페이지 소스코드 - filetest_req.html]
<html>
<head>
<title> PHP 파일쓰기 테스트 </title>
</head>
<body>
<form method="post" action="filetest_res.php">
파일에 작성할 Data :
<input type="text" name="ReqData" value="" /><br>
<input type="submit" value="Submit" />
</form>
</body>
</html>
[응답페이지 소스코드 - filetest_res.php]
<?php
//req html 페이지로부터 전달받은 데이터 저장
$content = $_POST["ReqData"];
//내용을 저장할 파일명
$fileName = "fwriteTest.txt";
//파일 열기
$fp = fopen($fileName, 'w');
//파일 쓰기
$fw = fwrite($fp, $content);
//파일 쓰기 성공 여부 확인
if($fw == false){
echo '파일 쓰기에 실패하였습니다.';
}
else {
echo '파일 쓰기 성공!!';
}
//파일 종료
fclose($fp);
?>
블로그에서 코드블럭을 지원하다니..tistory 만세!
생각보다 소스는 간단하죠? 하지만 파일을 여는 fopen() 함수나 파일을 작성하는 fwrite()함수,
파일을 종료하는 fclose() 함수는 되게 중요해서 쉽게쉽게 익혀놔야 나중에 어려운 코드 속에서도 헤메지 않고 잘 쓸수 있습니다!
함수 사용 방법은 아래와 같습니다.
파일 열기 함수 : fopen('파일 경로 및 파일명', '파일을 여는 옵션')
파일 작성 함수 : fwrite('파일 경로 및 파일명', '파일에 작성할 내용')
파일 닫기 함수 : fclose('fopen() 함수로 실행된 파일 변수')
대충 쉬워보이는데 파일을 열 때 여는 옵션..?
fopen()함수에 보면 입력값으로 파일을 여는 옵션이 보이죠?
fopen()함수를 쓸 때 아래 5가지 옵션이 존재합니다.
r : 파일을 읽기 전용으로 열기 (해당 옵션으로 파일을 열면 쓰기 불가)
w : 파일을 쓰기 전용으로 열기 (기존 파일이 있을 경우, 내용이 삭제되고 처음부터 다시 씀)
a : 파일을 쓰기 전용으로 열기 (기존 파일이 있을 경우, 내용 뒤에 덧붙여서 씀)
w+ : 파일을 읽고 쓸 수 있도록 열기 (기존 파일이 있을 경우, 내용이 삭제되고 처음부터 다시 씀)
a+ : 파일을 읽고 쓸 수 있도록 열기 (기존 파일이 있을 경우, 내용 뒤에 덧붙여서 씀)
저 다섯개가 어떤용도인지는 위 소스에서 fopen 옵션을 한번씩 바꿔가면서
파일을 실행시키면 확인할 수 있을 것입니다. (이번 포스팅에서는 w와 a 옵션 보여드릴게요!)
다만, r 옵션을 적용시키면 fwrite 함수를 사용하지 못하겠죠? 이것도 같이 주의하시면 됩니다.
설명이 너무 길어졌죠? 일단 실행시키면 입력화면과 결과화면이 이렇게 나옵니다.
요청한 기록에 대하여 응답 값을 txt에다 적는 형태의 소스코드입니다!
위에 소스를 그대로 실행시키면 이렇게 진행됩니다.
이번엔 다시한 번 똑같이 진행하는데 요청할 값을 "Hello World!" 가 아닌 "Test Request!"로 요청해보겠습니다.
내용을 바꿨더니 w 옵션 설명에서 말했던 것처럼 기존 내용이 삭제된 것을 볼 수 있습니다.
그럼 이번엔, filetest_res.php 파일 내 fopen($fileName, 'w'); 를 fopen($fileName, 'a');로
바꿔서 다시한 번 실행해보겠습니다.
이번엔 입력값을 "Test Response!"으로 변경해보겠습니다.
이번엔 지워지지 않고 뒤에 덧붙여서 진행되었습니다!
이렇게 php를 이용하여 txt 파일을 작성하는 법을 공유해보았습니다.
작성하면서 테스트를 해보니 쉽지만, 막상 회사가면 한번 뇌에서 필터링을 거치게 되더라구요!
너무 쉽지 않나..?라고 생각하지만 요긴하게 쓰이는 함수라서 필히 익혀두어야 할 것 같습니다ㅎㅎ
오늘은 여기까지만 글을 작성하고 다음에 다른 언어로 작성하는 방법도 같이 포스팅하겠습니다!
그럼 이만!!
'PHP' 카테고리의 다른 글
[PHP] 폴더 생성하고 삭제하기 (mkdir, rmdir) (0) | 2020.12.06 |
---|---|
[PHP] API 통신할 때 file_get_contents(), curl은 무슨 차이일까? (1) | 2020.10.22 |
[PHP] 메모장 파일 읽기! (fread, fgets) (0) | 2020.09.03 |
PHP 8 출시..? 어떤 것이 달라질까? (1) | 2020.09.01 |
PHP 맛보기 <php.ini , phpinfo() > (0) | 2020.04.25 |