>  기사  >  php教程  >  fopen 함수를 사용하여 PHP에서 파일을 여는 방법

fopen 함수를 사용하여 PHP에서 파일을 여는 방법

高洛峰
高洛峰원래의
2016-12-21 15:54:311457검색

1.resource fopen(string $filename, string $mode [,bool $use_include_path [, resources $zcontext]])
기능:
fopen()은 filename으로 지정된 이름 리소스를 Stream up에 바인딩합니다. . 파일 이름이 "scheme://..." 형식인 경우 URL로 처리되며 PHP는 해당 구성표를 처리하기 위한 프로토콜 처리기(래퍼 프로토콜이라고도 함)를 검색합니다. 프로토콜이 래퍼 프로토콜로 등록되지 않은 경우 PHP는 스크립트의 잠재적인 문제를 확인하는 데 도움이 되는 메시지를 내보내고 filename을 일반 파일 이름으로 계속 실행합니다.
PHP가 filename이 로컬 파일을 지정한다고 생각하면 해당 파일에서 스트림을 열려고 시도합니다. 파일은 PHP에 접근 가능해야 하므로 파일 접근 권한이 이 접근을 허용하는지 확인해야 합니다. 안전 모드 또는 open_basedir이 활성화된 경우 추가 제한 사항이 적용됩니다.

PHP가 filename이 등록된 프로토콜을 지정한다고 생각하고 해당 프로토콜이 네트워크 URL로 등록된 경우 PHP는 허용_url_fopen이 활성화되었는지 확인합니다. 닫히면 PHP는 경고를 표시하고 fopen 호출이 실패합니다.

파일 이름: 열려는 파일 또는 URL을 지정합니다.
모드: 파일/스트림에 필요한 액세스 유형을 지정합니다.
include_path: 선택 사항입니다. include_path에 있는 파일도 검색해야 하는 경우 이 매개변수를 1 또는 TRUE로 설정할 수 있습니다.
컨텍스트: 선택 사항이며 파일 핸들의 환경을 지정합니다. 컨텍스트는 스트림의 동작을 수정할 수 있는 옵션 집합입니다.

모드 매개변수의 가능한 값
모드 설명
"r" 읽기 전용 모드로 열고 파일 포인터가 파일 헤더를 가리킵니다.
"r+" 읽기 및 쓰기 모드로 열고 파일 포인터가 파일 헤더를 가리킵니다.
"w" 쓰기 모드로 열고 파일 포인터를 파일 헤더로 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 생성해 보십시오.
"w+" 읽기 및 쓰기 모드로 열고 파일 포인터로 파일 헤더를 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 생성해 보십시오.
"a" 쓰기 모드로 열고 파일 포인터가 파일 끝을 가리킵니다. 파일이 존재하지 않으면 생성해 보십시오.
"a+" 읽기-쓰기 모드로 열고 파일 포인터가 파일 끝을 가리킵니다. 파일이 존재하지 않으면 생성해 보십시오.
"x"
파일 포인터를 파일 헤더로 지정하여 쓰기용으로 만들고 엽니다. 파일이 이미 존재하는 경우 fopen() 호출은 실패하고 FALSE를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 생성해 보십시오.
이는 기본 open(2) 시스템 호출에 O_EXCL|O_CREAT 플래그를 지정하는 것과 같습니다.
이 옵션은 PHP 4.3.2 이상 버전에서 지원되며 로컬 파일에만 사용할 수 있습니다.

"x+"
파일 포인터를 파일 헤더로 지정하여 읽기-쓰기 모드로 만들고 엽니다. 파일이 이미 존재하는 경우 fopen() 호출은 실패하고 FALSE를 반환하며 E_WARNING 수준 오류 메시지를 생성합니다. 파일이 존재하지 않으면 생성해 보십시오.
이는 기본 open(2) 시스템 호출에 O_EXCL|O_CREAT 플래그를 지정하는 것과 같습니다.
이 옵션은 PHP 4.3.2 이상 버전에서 지원되며 로컬 파일에만 사용할 수 있습니다.

참고:
운영 체제 제품군마다 줄 끝 규칙이 다릅니다. 텍스트 파일에 쓰고 새 줄을 삽입하려면 운영 체제 호환 줄 끝을 사용해야 합니다. Unix 기반 시스템은 n을 줄 끝 문자로 사용하고 Windows 기반 시스템은 rn을 줄 끝 문자로 사용하며 Macintosh 기반 시스템은 r을 줄 끝 문자로 사용합니다.

줄 끝이 잘못된 파일을 작성하면 해당 파일을 열 때 다른 응용 프로그램이 이상하게 동작할 수 있습니다.
Windows에서는 n을 rn으로 투명하게 변환하는 텍스트 변환 태그('t')를 제공합니다. 또는 'b'를 사용하여 데이터가 변환되지 않도록 이진 모드를 강제 실행할 수 있습니다. 이러한 플래그를 사용하려면 모드 인수의 마지막 문자로 'b' 또는 't'를 사용하십시오.

기본 변환 모드는 사용되는 SAPI 및 PHP 버전에 따라 다르므로 이식성을 위해 항상 적절한 태그를 지정하는 것이 좋습니다. 일반 텍스트 파일로 작업하고 스크립트에서 줄 종결자로 n을 사용하지만 메모장과 같은 다른 응용 프로그램에서도 파일을 읽을 수 있도록 하려면 모드에서 't'를 사용하세요. 다른 모든 경우에는 'b'를 사용하세요.

바이너리 파일을 실행할 때 'b' 플래그를 지정하지 않으면 이미지 파일이 손상되거나 rn 문자에 이상한 문제가 발생하는 등 이상한 문제가 발생할 수 있습니다.


fopen 함수를 사용하여 PHP에서 파일을 여는 방법에 대한 더 많은 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.