홈으로 홈으로 | 무료회원가입 | 아이디/비번찾기 | 즐겨찾기
추천음악방송메인홈1대1상담음악방송청취
okTrot(구독해주세요)
전통가요(구독해주세요)
뽕짝아가씨(구독해주세요)
음악가사 검색
온라이브스토어(앱다운로드)
온라이브(방송등록및청취)
비디오 베스트 50
금영노래방
TJ노래방
유튜브 동영상 다운로드
POP Player
신나는 고스톱
컴퓨터 오목
작은 음악다방
운.영.자.1대1.상담
FAQ\지원.프로그램
Q&A\고.객.지.원

자동러시 웹플레이어신청

보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
PHP 파일 시스템(File System) 다루기 #1
7년 전
[PHP]  파일 시스템(File System) 다루기 #1

PHP 파일열기와 닫기

무슨일을 하던지 절차가 있기 마련입니다. php에서 파일을 사용하는 일반적인 절차는 여타 언어와 다르지 않습니다. 파일을 열고, 용도에 맞게 사용하고, 닫아주면 됩니다.


1. 파일열기

php에서 파일을 사용하기 위해서 가장 먼저 해야 할 절차라면 파일을 여는 것입니다. php에서는 파일을 열기 위해서 fopen 함수를 제공합니다.

※php에서 사용되는 함수들은 C언어의 함수들과 상당히 유사한 것이 많습니다. 파일관련 함수들 역시 예외는 아닙니다.

int fopen (string filename, string mode [, int use_include_path])

위는 fopen 함수의 원형입니다. fopen 함수는 파일열기에 성공하면 다른 파일입출력 함수들이 참조할 정수 형의 파일핸들(포인터)을 리턴해 줍니다. 이 리턴 값을 변수에 저장했다가 대다수의 파일관련 함수들을 사용할 때 매개변수로 넘겨주게 되면 파일관련 함수들은 넘겨받은 변수의 값을 참조해서 사용하게 될 파일을 알수 있게 됩니다. 파일열기에 실패시에는 false를 뜻하는 0을 리턴하게 됩니다. 아래는 fopen 함수의 사용 예입니다.

//로컬에 있는 test.php 파일을 읽기전용으로 엽니다.
$fp=fopen("./test.php","r");


//http프로토콜을 사용해서 웹상에있는 test.php 파일을 읽기전용으로 엽니다.
$fp=fopen("http://www.wembadang.net/test.php/","r");


//ftp프로토콜을 사용해서 ftp서버상에 있는 test.php 파일을 읽기 전용으로 엽니다. ftp로 접속을 맺기 위해서는 경로상에 호스트명 뿐만 아니라, 사용자명과 비밀번호를 같이 입력해 놓아야 합니다. 아래의 ftp 예에서는 myuser가 사용자명 password가 비밀번호입니다.
$fp=fopen("ftp:myuser:password@webmadang.net/test.php","r");




fopen함수는 로컬에 저장되어 있는 파일 뿐만 아니라, http와 ftp 프로토콜을 이용해서 원격에 있는 파일을 열수도 있습니다. 하지만 이 부분은 보안에 민감한 사항이라서 몇가지 제약사항이 있습니다.

※ 제약사항

http와 ftp을 이용해서 파일을 열기 위해서는 php.ini 파일의 allow_url_fopen 옵션이 On으로 설정되어져 있어야 합니다.
아마도 웹호스팅 서비스를 받고 있다면 대부분의 서버관리자는 allow_url_fopen 옵션을 Off로 설정해 놓았을 것입니다.
ftp는 한가지 더 제약사항이 있는데 ftp 서버가 passive모드를 지원해야 만 합니다.

아래는 allow_url_fopen 옵션이 Off로 설정되었을때 http 프로토콜을 이용해서 fopen함수를 사용할 때 출력되는 에러메시지입니다.

Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration




위의 함수의 원형에서 알수 있듯이 fopen 함수는 3개의 파라미터를 인자로 받습니다.

1) 첫번째 파라미터
String filename 열고자 하는 파일명입니다.
2) 두번째 파라미터
String mode 파일을 여는 방법을 지정하는 파라미터로 읽기 - "r", 쓰기- "w", 추가 - "a" 옵션이 있습니다.

정리해 보면 아래와 같습니다.

r 읽기 전용으로 엽니다. 파일 포인터는 파일의 처음에 위치합니다.
r+ 존재하는 파일을 갱신(읽고,쓰기)용으로 엽니다. 파일 포인터는 파일의 처음에 위치합니다.

w 쓰기 전용으로 파일을 엽니다. 동일한 파일명의 파일이 존재하는 경우 모든 내용을 삭제합니다, 파일이 존재하지 않으면 파일을 새로 생성합니다. 두경우 모두 파일 포인터는 파일의 처음에 위치합니다.
w+ 갱신(읽고,쓰기)용으로 파일을 엽니다. 동일한 파일명의 파일이 존재하는 경우 모든 내용을 삭제하며, 파일이 존재하지 않으면 파일을 새로 생성합니다. 두경우 모두 파일 포인터는 파일의 처음에 위치합니다.

a 추가용으로 파일을 엽니다. 파일이 없으면 파일을 생성하고, 파일이 존재하면 파일포인터는 파일의 끝에 위치합니다.
a+ 추가용, 갱신용으로 파일을 엽니다. 파일이 없으면 파일을 생성하고, 파일이 존재하면 파일 포인터는 파일의 끝에 위치합니다.

3) 세번째 파라미터
use_include_path는 선택적 파라미터입니다.

정수"1"또는 true를 지정했을 경우 지정된 디렉토리에 파일이 존재하지 않으면 include path에서 파일을 찾습니다.

2. 파일닫기

파일에 대한 작업이 끝났을 경우 fclose 함수를 이용해서 파일을 닫아 줍니다. 파일을 닫지 않고 php 스크립트가 종료되더라도 파일은 알아서 닫히게 되지만, 전에 사용했던 파일 포인터를 재 사용해야 해야 할 경우, 또는 과다한 파일 함수 호출시 파일을 열지 못한는 경우가 생길 수도 있으므로 파일을 닫아주는 습관을 들이는 것이 좋습니다.

php에서 파일닫기를 위해서는 fclose 함수를 사용합니다.

int fclose(int fp);

파라미터인 fp는 fopen함수의 리턴값인 정수형 파일 포인터이며 파일닫기에 성공하면 true 를 뜻하는 정수1을 실패하면 false를 뜻하는 0 을 반환합니다.

아래는 test.php 파일을 읽기 전용으로 열어서 그 내용을 화면에 출력하는 간단한 예입니다. fgetc 함수는 파일의 내용을
한 글자씩 읽어들이는 함수입니다.

<?php
   $filename = "test.php";
   $fp = fopen($filename, "r") or die("파일열기에 실패하였습니다");

   $buffer = "";
   while(!feof($fp)){
      $buffer .= fgetc($fp);
   }

   echo "<pre>".htmlspecialchars($buffer)."</pre>";
   fclose($fp);
?>


추천추천 : 163 추천 목록
번호 제목
3,013
 윈도우10 시스템 파일 및 Dism 검사
3,012
 텍스트 줄바꿈, 글자자르기 CSS
3,011
 jQuery Mobile에서 유용한 코드 10가지.
3,010
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,009
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,008
 [jQuery] jQuery Quick API
3,007
 [ transition ] 링크 hover 색상 변화 속도 조절
3,006
 PHP 5.3.0 에서 사라진 함수들 대체
3,005
 어떤 파일들이 include 나 require 되었는지 확인하는 함수(get_included_files)
3,004
 PHP 날짜 형식 및 계산하기(날짜 더하고 빼기)
3,003
 jQuery Mobile에서 유용한 코드 10가지.
3,002
 값이 배열 안에 존재하는지 확인하는 in_array함수
3,001
 사용자가 웹브라우저에서 뒤로가기를 했을때 감지하는 방법
3,000
 [jQuery]버튼 활성화, 비활성화
2,999
 jQuery show() / hide() / toggle() 사용법
2,998
 jquery 여러가지 이벤트
2,997
 border-radius 속성
2,996
 네이버 오픈API 음성합성 API 사용하는 PHP 샘플코드
2,995
 UTF8 한글 자르기..
2,994
 iconv 에러 발생시 계속 처리하기 옵션
2,993
 [PHP] 현재 페이지의 도메인 , URL 정보 알아내기.
2,992
 [PHP] 막강 기능 배열..
2,991
 [CSS] - Input clear `X ` 버튼 제거 ( IE, Chrome, Firefox )
2,990
 [Mobile] - 모바일웹 Href 태그속성들
2,989
 [JqueryMobile] - 현재화면의 가로세로 사이즈 구하기
2,988
 [JqueryMobile] - 화면의 가로, 세로 사이즈 구하는 방법
2,987
 jquery로 가로 넓이(width), 세로 높이(height) 자동 조절
2,986
 iframe 높이 jquery로 자동조절하기
2,985
 jQuery 오른쪽 영역의 높이를 왼쪽 영역의 높이와 동일하게 하기
2,984
 jquery에서 테이블 짝수, 홀수 번째 TR 배경색 변경하기
2,983
 jquery에서 테이블에 마우스 오버시 해당 행의 배경색상 변경하기
2,982
 jquery 스크립트내 특정값 확인하기 (디버깅)
2,981
 jquery cookie (jquery.cookie.js)
2,980
 jquery div 기본 넓이, 높이 계산 및 padding, border 포함 하기
2,979
 jquery 다른버전 추가 사용시 충돌 방지 (카페24 스마트디자인 기본내장 jquery 1.4.4 버전과 충돌시 해결방법)
목록
추천음악방송
인기절정뽕짝파티
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
앵콜트로트
뽕짝아가씨
KBS가요무대
작은 음악다방
종합성인가요방
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
Dance&Remix
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
JP\CN
POP TOP BEST
K.R.노래방

추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
가요1번지(종합)
뮤직하우스
동요\연변\반주\기타
가요축제\트롯1번지
댄스\메들리\리믹스
카페\명상\경음악\기타
추천가요\POP\기타
최신가요\인기가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.