Notice
Recent Posts
Recent Comments
Today
Total
05-20 02:59
Archives
관리 메뉴

Jeongchul Kim

PHP 파일 입출력 본문

Web프로그래밍

PHP 파일 입출력

김 정출 2016. 2. 15. 14:14




PHP 파일 입출력



◆ 데이터 저장하기

 데이터는 파일이나, 데이터베이스에 저장할 수 있다.


◆ 파일 처리 (파일에 데이터쓰기,읽기)

1. 파일을 연다, 만약 파일이 존재하지 않는다면 새로 만든다.

2. 파일에 데이터를 쓴다.

3. 파일을 닫는다.


◆ 파일 열기

 fopen() 함수, 파일을 사용하는 목적을 명시해주어야 하며, 이것을 파일모드

  * 파일모드

 1. 읽기,쓰기, 읽고쓰기 전용

 2. 덮어쓰거나, 파일의 끝에 새 데이터를 추가한다.

 3. 바이너리, 텍스트 파일 중 하나를 선택한다.


<?php

$fp = fopen(“/var/www/html/order.txt”,’w’);

?>


  * 상대경로, 절대경로

 1. 상대경로 : 웹 문서 트리 와의 상대적인 위치   -> $_SERVER[‘DOCUMENT_ROOT’]

 2. 절대경로 :  루트 데릭터리(리눅스 /, 윈도우 C:\)에서 접근하는 경로


  * 파일모드 (두 번째 파라미터)

 r(읽기모드), r+(읽고쓰기위해), w(쓰기모드), w+(읽고쓰기위해), a(추가모드:끝에서부터 붙여넣기)

<?php

$fp = fopen(“/var/www/html/info.txt”,’ab’);   // @ 오류 억제 연산  

if(!$fp) {

echo<p><strong> Your information could not be processed at this time.”;   

echo "Please try againg later.</strong></p>";

exit;  

}

?>


◆ 파일쓰기

fwrite($fp,$outstring,strlen($outputstring)); // $outstring에 저장된 문자열을 $fp가 가르키는 파일에 쓴다.

fwrite(resource handle, string string, int length) // length는 문자열의 길이 strlen()으로 알아낼 수 있다.

 * 저장형식

   $outstring = $id.”id \t”.$password.”password \n”

 // \n 한줄 씩 저장하기 위해

 // \t 필드를 구별하기 위해 탭을 삽입한다. 구분 문자로 불러오면 관리하기 편하다.




◆ 파일 닫기 : 파일 사용이 끝났을 경우 파일을 닫는다.

   fclose($fp);

   fclose()함수는 제대로 닫혔을 때 true 리턴, 아니면 false 리턴하여, 별도로 검사하지 않아도 된다.



◆ 파일 입출력에 관해 주의점

   * chmod u+wrx 파일저장할.txt / chmod o+wrx 파일저장할.txt

    readonly 에서 사용권한을 주어야 파일에 저장이 가능하다.


◆ 파일의 끝 알아보기

   feof() 함수는 파일의 포인터를 인자로 받는다.

   while(!feof($fp))


◆ 한 번에 한 줄씩 읽기 : fgets(),fgetss(), fgetcsv()

   1. fgets(resourse fp, int length) : EOF(End of File)를 만나거나, length-1만큼 한 줄 씩 읽고 진행한다.

   2. fgetss() : 읽어들인 문자열에서 PHP와 HTML태그를 모두 제거한다.

   3. fgetcsv() : 읽어들인 문자열을 구분 문자로 나누어서 배열에 저장한다.


◆ 한 번에 파일 전체 읽기 : readfile()


'Web프로그래밍' 카테고리의 다른 글

HTML5 01-1 HTML5 개요 웹 표준의 기본 지식  (0) 2016.04.19
PHP 배열, 문자열  (0) 2016.02.15
PHP 예외 처리 Exception  (0) 2016.02.15
PHP 함수와 객체, 클래스  (0) 2016.02.15
PHP 입력과 출력, include와 require  (0) 2016.02.15
Comments