회원가입∴아이디/비번찾기
홈으로


fopen
10년 전
(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() 을 부르도록 합시다.
추천추천 : 518 추천 목록
번호 제목
2,891
입력 필드에서 특정단어(예:#err)가 포함되었을 때 실시간 감지 및 경고창 띄우기
2,890
데이터베이스 최적화와 쿼리 효율성을 높이 검색 성능을 개선하는 방법
2,889
간단한 게시판 만들기
2,888
PHP의 php.ini 파일에서 설정할 수 있는 주요 항목들을 카테고리별로 정리
2,887
유튜브 동영상의 썸네일 이미지를 체크하여 유효한 영상이아닐때 연결된 체크박스를 자동으로 체크
2,886
이미지 URL이 유효하지 않을 때, 해당 이미지와 연결된 체크박스를 자동으로 체크
2,885
HTTPS로 접속한 사용자를 강제로 HTTP로 리디렉션 하려면
2,884
PHP에서 MP3 파일을 직접 읽고 스트리밍 하기
2,883
현재 페이지가 location.reload()에 의해 새로고침되었는지
2,882
텍스트 파일을 읽고, 각 줄의 끝에서 6글자를 삭제한 후, 결과를 새로운 파일에 저장합니다.
2,881
cURL을 사용하여 리다이렉트를 따라가 최종 URL 가져오기
2,880
[PHP] $_SERVER 환경변수
2,879
10진수 <-> 16진수 변환기 PHP소스
2,878
텍스트에 직접 그라데이션 색상을 적용하려면?
2,877
CSS를 사용하여 요소의 내용물에 따라 width를 조정하는 방법
2,876
웹서버 ip 확인
2,875
웹호스팅의 절대경로를 확인
2,874
input 입력 필드 앞뒤 공백 실시간 제거
2,873
Placeholder 포커스시 감추기
2,872
MySQL 중복된 데이터를 삭제
2,871
MySQL 중복 데이터 확인
2,870
sessionStorage.getItem 와 sessionStorage.setItem
2,869
제이쿼리 랜덤으로 배경색 변경
2,868
preg match에 관한 정규식
2,867
Stream an audio file with MediaPlayer 오디오 파일 스트리밍 하기
2,866
Audio Streaming PHP Code
2,865
PHP $ SERVER 환경 변수 정리
2,864
Vimeo (비메오) API 를 사용하여 플레이어 컨트롤하기
2,863
iframe 사용시 하단에 발생하는 공백 제거방법
2,862
아이프레임(iframe) 전체화면 가능하게 하기
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침ㅣ모바일버전
Copyright ⓒ musictrot All rights reserved.