홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
fopen
6년 전
(PHP 4, PHP 5, PHP 7)

fopen — 파일 또는 URL을 열

설명
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
fopen() 는filename 에서 지정된 자원을 스트림에 매답니다.

파라미터
filename
filename 이"스킴://...."의 형식인 경우 그것은 URL로 간주되어 PHP는 그 프로토콜 핸들러 (래퍼라고도 합니다)를 찾습니다. 만약 그 프로토콜에 대한 래퍼가 등록되지 않은 경우 PHP는 스크립트에 잠재적인 문제가 있음을 드러내NOTICE을 발행한 뒤 filename 를 통상적인 파일로 보고 열것을 시도합니다.

PHP는filename 이 로컬 파일을 나타내고 있다고 보면 그 파일의 스트림을 오픈합니다. 그 파일은 PHP에서 접근하지 않으면 안 됩니다. 파일의 퍼미션이(파라미터로 지정된) 접근이 허가되는지 확인할 필요가 있습니다. 세이프 모드 또는open_basedir 을 유효하게 하고 있는 경우는 추가 액세스 제한이 가해질 일이 있습니다.

filename 이 등록된 프로토콜을 나타내고 있다고 PHP가 판단하고 그 프로토콜이 네트워크 URL로 등록되어 있으면, PHP가allow_url_fopen 효과적인지 아닌지 체크합니다. 만일 이것이 꺼졌다고 PHP는 warning을 발행하는 fopen은 실패합니다.

주의:

지원되고 있는 프로토콜의 목록은 지원하는 프로토콜/래퍼 에 있습니다. 몇가지 프로토콜(wrappers에도 관련된)은 context 이고/또는php.ini 옵션을 지원합니다. 사용하는 프로토콜에 대해서 세트 하는 옵션의 목록은 각각의 페이지를 보세요(예를 들면 위php.ini 의 user_agent 값은 http 래퍼가 사용합니다).
Windows환경에서는 파일 경로로 이용하는 모든 역 슬래시를 확장하거나 포워드 슬래시를 사용하는 것에 주의하세요.

<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>
mode
파라미터는mode , 그 스트림에 필요한 액세스 형식을 지정합니다. 이 지정은 아래 표 중 어떤 것인가입니다.

fopen() 에서 사용 가능한 mode 명단
mode        설명
'r'        읽기에만 오픈합니다. 파일 포인터를 파일의 선두에 둡니다.
'r+'        읽기/쓰기용으로 오픈합니다. 파일 포인터를 파일의 선두에 둡니다.
'w'        서두에만 오픈합니다. 파일 포인터를 파일의 선두에 두고 파일 사이즈를 제로로 합니다. 파일이 존재하지 않는 경우에는 작성을 시도합니다.
'w+'        읽기/쓰기용으로 오픈합니다. 파일 포인터를 파일의 선두에 두고 파일 사이즈를 제로로 합니다. 파일이 존재하지 않는 경우에는 작성을 시도합니다.
'a'        쓰기용으로만 오픈합니다. 파일 포인터를 파일의 끝에 둡니다. 파일이 존재하지 않는 경우에는 작성을 시도합니다. 이 모드는, 그fseek() 럼 아무 효과도 없어요. 글은 항상 추가합니다.
'a+'        읽기/쓰기용으로 오픈합니다. 파일 포인터를 파일의 끝에 둡니다. 파일이 존재하지 않는 경우에는 작성을 시도합니다. 이 모드는fseek() 에서는 읽기 위치에만 영향을 줍니다. 글은 항상 추가합니다.
'x'        글에만 오픈합니다. 파일 포인터를 파일의 선두에 둡니다. 파일이 이미 존재할 경우에는fopen() 실패하고 E_WARNING 수준 오류를 발행합니다. 파일이 존재하지 않을 경우에는 신규 작성을 시도합니다. 이는 시open(2) 스템 콜의 O_EXCL|O_CREAT 플래그의 지정과 등가입니다. 이 옵션은 PHP4.3.2이후에서 지원되고 또 로컬 파일에 대해서만 유효합니다.
'x+'        읽기/쓰기용으로 오픈합니다. 그 이외의 행동은'x' 과 같습니다.
'c'        글에만 오픈합니다. 파일이 존재하지 않을 경우에는 신규 작성을 시도합니다. 파일이 이미 존재하는 경우에도 그것을('w' 처럼) 줄이지 않고 또('x' 처럼)함수 호출이 실패할 것도 없습니다. 파일 포인터를 파일의 선두에 둡니다. 이는 어드바이저리 록 (flock() 을 참조하십시오)를 확보한 다음 파일을 변경하고자 하는 경우에 편리합니다. 'w' 를 사용하면 락을 따기 전에 파일을 줄이고 버립니다 (만약 파일을 줄이고 싶다면 록을 요구한 뒤 ftruncate() 를 사용할 수도 있습니다).
'c+'        읽기/쓰기용으로 오픈합니다. 그 이외의 행동은'c' 과 같습니다.
주의:

오퍼레이팅 시스템 패밀리가 다르면 장래도 다릅니다. 텍스트 파일에 쓰기 시작했고, 거기에 개항하고 싶을 때 운영 체계에 맞춘 바른 줄 코드를 사용할 필요가 있습니다. Unix기반의 시스템에서는 개행에\n 캐릭터를 사용합니다. Windows기반의 시스템에서는\r\n 을 사용합니다. 매킨토시 베이스의 시스템에서는\r 을 사용합니다.

잘못된 개행 코드에서 파일에 올리면 다른 응용 프로그램 상에서 그 파일을 열었을 때에 이상하게 보입니다.

Windows상으로는\n을\r\n 투과적으로 변환하는 text-mode변환 플래그('t')이 제공됩니다. 반면'b'을 써서 강제적으로 바이너리 모드로 할 수도 있습니다. 그 경우 데이터의 변환은 하지 않습니다. 이 플래그를 사용하려면 또'b' 는't'을 mode인수의 마지막에 추가하세요.

디폴트의 변환 모드는 SAPI와 사용하고 있는 PHP의 버젼에 의해서 다릅니다. 그러므로, 호환성의 의미에서 항상 적절한 플래그를 지정할 권장됩니다. plain-text파일을 사용하는 경우에는't' 모드를 지정해야 한다, 개행을\n 사용하면, 메모장 같은 애플리케이션에서 읽힐 것을 기대할 수 있습니다. 그 이외의 경우'b' 를 써야 합니다.

이진 파일을 다루고 있을 때에 'b' 플래그를 지정하지 않은 경우 화상 파일이 깨지거나\r\n 캐릭터가 이상한 등의 문제를 안고 말 겁니다.
주의:

호환성 유지를 위해서,fopen() 파일을 오픈할 때는 평소에 'b' 플래그를 지정하는 것이 강하게 권장됩니다.
주의:

호환성 유지를 위해서, 모't' 드를 사용 또는 의존하는 코드를 수정, 바른 줄 코드나'b' 모드를 대신 사용하는 것이 적극 권장됩니다.
use_include_path
옵션의 3번째 인수use_include_path로'1'또는 TRUE 를 설정하면include_path 파일의 검색도 할 수 있습니다.

context
주의: 콘텍스트의 지원은 PHP 5.0.0로 추가됬어요contexts . 설명에 관해서는 스트림 을 참조하세요.
반환 값
성공한 경우에 파일 포인터 리소스, 에러시에FALSE 를 갚겠습니다.

에러/예외
오픈이 실패하면 이 함수는FALSE 을 돌려주었다 E_WARNING 수준 오류를 발행합니다. @ 로 이 warning을 억제할 수도 있습니다.

변경 이력
버전        설명
5.2.6        'c' 및'c+' 이 추가되었습니다.
4.3.2        PHP 4.3.2이후는 바이너리 모드와 텍스트 모드를 구별하는 모든 플랫폼에서 기본 모드는 바이너리에 세팅됩니다. 업그레이드 후 스크립트에 문제가 일어났을 경우는 이상에서 말한 스크립트의 호환성을 확보하기까지 차선책으로 't' 플래그를 시험하고 보세요.

사례 1fopen() 의 예

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>
주의
경고
IIS 같은 몇몇 표준에 대응하지 않는 Web서버는 PHP에 경고를 발생시키는 순서로 데이터를 송신합니다. 이러한 서버를 사용할 경우 error_reporting 를 경고를 발생하지 않는 수준까지 줄일 필요가 있습니다. PHP에서는https:// 래퍼에서 스트림을 열때 오류가 있다 IIS서버 소프트웨어를 검출할 수 있고 이 경고를 억제할 수 있습니다. 당신이ssl:// 소켓을 작성하기 위해서fsockopen() 를 사용하는 경우, 스스로 이 경고를 검출하고 억제할 필요가 있습니다.

주의: 세이프 모드가 유효한 경우 PHP는 조작하는 디렉토리가 실행하는 스크립트와 같은 UID(소유자)을 가지고 있는가 여부를 확인합니다.
주의:

파일의 읽어 내는, 쓸 때 문제가 발생하고 서버 모듈판 PHP를 사용하는 경우, 사용할 파일과 디렉토리가 서버 프로세스에서 액세스 가능 여부를 확인하세요.
주의:

이 함수는filename 이 디렉토리의 경우에도 성공하는 일이 있습니다. filename 이 파일인지 디렉토리인지 분명치 않은 경우는 먼저is_dir() 를 사용한 다음fopen() 을 부르도록 합시다.
추천추천 : 174 추천 목록
번호 제목
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.