$fp = fopen('해당주소', '파일모드');
해당 주소 부분에는 열고자 하는 파일이 있는 경로를 적어주고,
파일 모드는 아래와 같다.
r : 파일을 읽기 전용으로 연다. 파일의 처음에서 시작한다.
r+ : 파일을 읽고 쓰기 위해 연다. 파일의 처음에서 시작한다.
w : 파일을 쓰기 전용으로 연다. 파일의 처음에서 시작한다. 만약 파일이 있을 경우 먼저 있던 내용은 지우고 없다면 새로 만든다.
w+ : 파일을 읽고 쓰기 위해 연다. 나머지 내용은 w와 같다.
x : 파일을 쓰기 위해 연다. 만약 파일이 있을 경우 파일을 열지 않고 fopen()은 false로 반환하고 PHP는 경로를 낸다.
x+ : 파일을 읽고 쓰기 위해 연다. 나머지 내용은 x와 같다.
a : 파일을 추가하기 위해 연다. 현재 있는 내용의 끝에서 시작한다. 만약 파일이 없다면 새로 만든다.
a+ : 파일을 읽고 추가하기 위해 연다. 나머지 내용은 a와 같다.
b : 다른 모드들과 합쳐서 사용한다. 바이너리와 텍스트 파일을 구별하는 경우에반 사용할 수 있다. windows에서는 구별하며 unix에서는 구별하지 않는다. 이동성을 높이기 위해 항상 이 모드를 사용하는 것이 좋다. 바이너리 모드가 기본값이다.
t : 다른 모드들과 합쳐서 사용한다. 이 모드는 windows 시스템에서만 사용할 수 있다. 코드를 b 옵션으로 사용하도록 바꾸고 난 뒤가 아니라면 t 옵션은 사용하지 않는 편이 좋다.
실제 파일을 열고 나면 파일 안의 데이터를 읽어 와야 되는데 그럴 때 사용하는 함수로는 3개가 있다.
$data = fgets($fp, 999);
fgets() 함수는 파일에서 한 줄씩 읽는다. 이 경우 파일의 줄바꿈 문자나 EOF를 만나지 않는다면 998바이트를 읽을 때까지 진행한다.
$data = fgetss($fp, 999, "특정 태그");
fgetss() 함수는 읽어들인 문자열에서 PHP와 HTML 태그를 모두 제거한다. 특정 태그를 남겨두려면 적어준다.
$data = fgetcsv($fp, 999, "delimiter");
fgetcsv() 함수는 파일에서 읽은 문자열을 구분 문자로 나누어서 배열에 저장한다. 가운데는 length 파라미터인데, 이 값은 읽으려는 한 줄의 길이보다 좀 더 길어야 한다.
$data = fgetc($fp);
fgetc() 함수는 파일에서 한번에 한 문자씩 읽어들인다.
책에서 보면 상대 경로를 지정해서 사용하는 것이 이식성 때문에 좋다고 나와있는데
왜 나는 상대 경로를 지정하지 작동이 되지 않는지 모르겠다.
일단 절대 경로를 지정 해놓았는데 나중에 시간이 나면 다시 고쳐 봐야겠다.
출처: 성공적인 웹 프로그래밍 PHP와 MySQL 제 3판
'프로그래밍 > SCRIPT' 카테고리의 다른 글
shell] array 사용 (0) | 2013.06.12 |
---|---|
PHP] php error 출력 설정 (0) | 2011.06.19 |
html, PHP] form 사용하기 (0) | 2011.06.18 |
php와 mysql 연동 (0) | 2011.06.18 |