반응형
1) php 파일 다루기
1. readfile( )
- 파일에서 데이터를 한 줄로 읽어오는 함수이다.
- echo 함수를 사용할 필요가 없으며, 텍스트를 표시할 위치에 사용하면 읽어온 내용을 그대로 출력한다.
<?php readfile("./data.txt"); ?>
▼실행 결과▼
2. file( )
- 매개변수에 지정된 파일을 읽어 한줄씩 나눠 배열에 저장한다.
🎁 파일처리할 때 실패할 가능성이 있는 경우 처리방법 🎁
- @을 붙이면 실행시 에러가 나더라도 스크립트를 중단하지 않으며, 화면에 에러를 발생시키지 않는다.
// $변수 = @file(파일경로) or 실패했을 경우 처리할 문장;
$lines = @file("data.txt") or $result = "파일을 가져올 수 없습니다";
<?php
$result = "";
$lines = @file("data.txt") or $result = "파일을 가져올 수 없습니다";
/*
$lines[0] = "안녕하세요. php 파일 예제입니다.";
$lines[1] = "휴가도 끝나고 무슨 낙으로 살까요?";
*/
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>파일 - 2</title>
</head>
<body>
<h2>파일 - 2</h2>
<?php
if($lines != null){
for($i=0; $i<count($lines); $i++){
$result .= $lines[$i]."<br>";
}
}
?>
<p><?=$result?></p>
</body>
</html>
▼실행 결과▼
2) php 파일 실행 예제 - 1(테이블 만들기)
- 아래 파일 "tel.txt"를 읽어 아래와 같이 출력하는 문서를 작성해보기
김사과 010-1111-1111 서울 서초구
반하나 010-2222-2222 서울 강남구
오렌지 010-3333-3333 서울 동작구
이메론 010-4444-4444 서울 금천구
<?php
$result = "";
$lines = @file("tel.txt") or $result = "파일을 읽을 수 없습니다";
/*
$lines[0] = "김사과,010-1111-1111,서울 서초구"
$lines[1] = "반하나,010-2222-2222,서울 강남구"
$lines[2] = "오렌지,010-3333-3333,서울 동작구"
$lines[3] = "이메론,010-4444-4444,서울 금천구"
*/
if($lines != null){
for($i=0; $i<count($lines); $i++){
$result .= "<tr>";
$arr = explode(",", $lines[$i]); // ,(콤마)를 기준으로 잘라서 리턴해준다.
// $arr[0] = "김사과", $arr[1] = "010-1111-1111", $arr[2] = "서울 서초구"
for($j=0; $j<count($arr); $j++){
$result .= "<td>{$arr[$j]}</td>";
}
$result .="</tr>";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>파일 - 3</title>
<style>
table { width: 600px; border-collapse: collapse; }
th, td { height: 30px; border: 1px solid red; }
</style>
</head>
<body>
<h2>파일 - 3</h2>
<table>
<tr>
<th>이름</th>
<th>연락처</th>
<th>주소</th>
</tr>
<?=$result?>
</table>
</body>
</html>
▼실행 결과▼
3) php 파일 관련 함수
1. fopen()
- file() 함수보다 유연한 코드를 작성하기 위한 함수로, 모드를 설정하여 여러가지 파일에 대한 처리가 가능하다.
2. fgets()
- fopen() 함수로 open한 파일의 데이터를 읽어준다.
3. fputs()
- fopen() 함수로 open한 파일의 데이터를 저장한다.
4. feof()
- fopen 함수로 open한 파일의 데이터가 존재하는지 여부를 확인한다.
- file end of
5. fclose()
- fopen 함수로 open한 파일을 더이상 사용하지 않는다면 파일을 닫는다.
4) php 파일 실행 예제 - 2(파일 읽어오기)
<?php
$fs = "";
$fs = @fopen("tel.txt", "r") or exit("break"); // r은 읽기모드
$result = "";
while(!feof($fs)){
$result .= fgets($fs, 10); // 10byte씩 읽음
}
fclose($fs);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>파일 - 4</title>
</head>
<body>
<h2>파일 - 4</h2>
<p><?=$result?></p>
</body>
</html>
▼실행 결과▼
5) php 파일 실행 예제 - 3(댓글쓰기)
<?php
// 댓글을 썻다면..
if($_POST != null){
// 텍스트 저장 모드 : w, 추가 저장 : a
$fs = @fopen("reply.txt", "a") or exit("break");
if($fs != null){
$msg = $_POST['msg'];
fputs($fs, $msg."\n");
fclose($fs);
}
}
$result = "";
$fs = @fopen("reply.txt", "r") or exit("break");
$i = 1;
while(!feof($fs)){
$msg = fgets($fs);
if($msg != ""){
$result = $i++ ." > " . $msg . "<br>" . $result;
}
}
fclose($fs);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>파일을 이용한 댓글 만들기</title>
</head>
<body>
<h2>파일을 이용한 댓글 만들기</h2>
<form action="./8-file5.php" method="post">
<p><label>댓글 : <input type="text" name="msg"></label> <input type="submit" value="확인"></p>
</form>
<hr/>
<p><?=$result?></p>
</body>
</html>
▼실행 결과▼
반응형
'Front-End > PHP' 카테고리의 다른 글
[PHP] Ajax개요, 특징, XHR 알아보기 (0) | 2021.07.24 |
---|---|
[PHP] DB와 연결, 접속하기 (0) | 2021.07.24 |
[PHP] 쿠키(Cookie), 세션(Session) (0) | 2021.07.17 |
[PHP] 함수(function) 알아보기 (0) | 2021.07.17 |
[PHP] 제어문(조건문, 반복문), 배열 알아보기 (0) | 2021.07.17 |