Write 파일 함수: file_put_contents()
FILE_USE_INCLUDE_PATH: 파일 이름 복사본의 내장 경로를 확인합니다
LOCK_EX: 파일
FILE_APPEND : 파일의 끝으로 이동합니다. 그렇지 않으면 파일 내용이 지워집니다.
구문:
int file_put_contents(file,data,mode,context)
int file_put_contents(file,data,mode,context)
参数 | 描述 |
---|---|
file | 必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。 |
data | 可选。规定要写入文件的数据。可以是字符串、一维数组或数据流。 |
mode | 可选。如何打开/写入文件。可能值:FILE_USE_INCLUDE_PATH 、 FILE_APPEND 、 LOCK_EX |
context | 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。 |
返回值:该函数将返回写入到文件内数据的字节数。
mode参数说明
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
读文件函数:file_get_contents()
语法:
string file_put_contents(path,include_path,context,start,max_length)
Description | |
---|---|
필수입니다. 데이터를 쓸 파일을 지정합니다. 파일이 없으면 새 파일이 생성됩니다. | |
선택사항. 파일에 기록할 데이터를 지정합니다. 문자열, 1차원 배열 또는 데이터 스트림일 수 있습니다. | |
선택사항. 파일을 열고 쓰는 방법. 가능한 값: FILE_USE_INCLUDE_PATH, FILE_APPEND, LOCK_EX | |
선택 사항. 파일 핸들의 환경을 지정합니다. context는 스트림의 동작을 수정할 수 있는 옵션 집합입니다. null이 사용되면 무시됩니다. | |
반환 값: 이 함수는 파일에 기록된 데이터의 바이트 수를 반환합니다. |
string file_put_contents(path,include_path,context,start,max_length)
🎜🎜🎜🎜🎜매개변수 🎜🎜Description🎜🎜🎜🎜🎜🎜path🎜🎜필수입니다. 읽을 파일을 지정합니다. 외부 URL🎜🎜🎜🎜include_path🎜🎜선택사항일 수 있습니다. include_path에서도 파일을 검색하려면 이 매개변수를 "1"로 설정하면 됩니다. 🎜🎜🎜🎜context🎜🎜선택사항. 파일 핸들의 환경을 지정합니다. 🎜🎜🎜🎜시작🎜🎜선택사항. 읽기를 시작할 파일의 위치를 지정합니다. 이 매개변수는 PHP 5.1의 새로운 기능입니다. 🎜🎜🎜🎜max_length🎜🎜선택사항. 읽을 바이트 수를 지정합니다. 이 매개변수는 PHP 5.1의 새로운 기능입니다. 🎜🎜🎜🎜반환 값: 읽은 문자열.
Unlink() 파일 삭제
Rename() 파일 이동(이름 바꾸기)
Filesize() 파일 크기
File_exists() 파일 여부 존재합니다
Filemtime() 파일의 마지막 수정 시간입니다!
대부분의 파일 읽기 및 쓰기는 File_put_contents, file_get_contents 함수를 사용하여 완료됩니다.
어떤 경우, 특별한 경우에는 위의 두 가지 기능을 사용하기가 쉽지 않습니다.
일반적으로 파일이 너무 큽니다! 부분적으로만 조작이 가능해요!
기본 단위는 바이트입니다.
fopen() 함수는 파일이나 URL을 엽니다.
열기에 실패하면 이 함수는 FALSE를 반환합니다.
열린 파일 핸들, PHP 프로그램과 파일 간의 데이터 경로!
파일 주소와 열기 모드라는 두 가지 매개변수가 필요합니다!
열기 모드: 파일을 연 후 수행해야 할 작업을 지정하세요! 다음 모드를 선택할 수 있습니다:
r: 읽기, 읽기 모드.
w: 쓰기, 쓰기 작업, 쓰기 지우기.
a: 추가, 쓰기 작업, 추가 쓰기.
x: 새로운 글쓰기는 작업을 위한 새로운 파일만 생성할 수 있습니다! w
+ 확장 모드와 유사한 쓰기 작업입니다. 확장 작업은 읽기 및 쓰기 작업을 완료할 수 있습니다.
<?php $handle = fopen('./data.txt','r'); var_dump($handle); // resoure(3) of type (stream) 得到一个资源类型 ?>
파일 핸들 읽기 함수 fread(),fgetc(),fgets(),feof();
One byte data = fgetc(handle); 바이트 문자
한 바이트를 읽을 때마다 파일 포인터를 한 바이트 앞으로 이동하세요! 핸들 작업에서는 파일 포인터에 따라 다릅니다!
String = fgets(handle, length)
읽을 때 개행 문자를 먼저 읽으면 역시 종료됩니다. 줄 읽기 기능이라고도 합니다! 일반적인 논리에서는 각 행에 일련의 정보가 기록되며 이 기능이 가장 일반적으로 사용됩니다!
feof()는 파일의 끝에 도달했는지 여부를 결정합니다.
파일의 모든 정보를 읽습니다. 예:
<?php $handle = fopen('./langref.txt','r'); while (! feof($handle)) { $line = fgets($handle,1024); echo $line . "</br>"; } ?>
String = fread(handle, length)
길이에 따라 내용을 읽습니다. fgets와 다르며 개행 문자의 영향을 받지 않습니다 제한
유일한 제한은 최대 길이가 8192를 초과할 수 없다는 것입니다!
파일 핸들 쓰기 함수 fwrite($handle, content)
Close 핸들 fclose($handle )
포인터 연산 기능
fseek(핸들, 위치), 위치 설정 포인터, 위치는 0부터 시작해서 증가!
ftell(handle), 포인터 위치를 얻으세요!
PHP의 파일 작업 기능은 기본적으로 차단 상태가 아닙니다. 무료 운영 상태. 따라서 파일을 동시에 작업할 때 오류가 발생하기 쉽습니다. 하나의 스크립트 작업이 다른 스크립트 작업을 차단해야 하는 경우 파일 잠금을 사용해야 합니다.
잠금 작업 과정:
먼저 잠금을 추가하고, 잠금이 성공적으로 추가되었는지 확인하고, 성공하면 다시 사용하세요!
잠금 유형:
읽기 잠금: s-lock(공유 잠금) 공유 잠금, 읽기 작업 전에 예상되는 추가 잠금입니다. 결과적으로 동시 읽기가 허용되고 추가 쓰기 작업이 차단됩니다.
쓰기 잠금: x-lock(배타적 잠금) 배타적 잠금, 배타적 잠금, 쓰기 작업 전에 잠금 유형을 추가해 보세요. 결과적으로 다른 스크립트는 읽거나 쓸 수 없습니다.
의도 잠금: 리소스를 작동하는 모든 스크립트는 파일 잠금을 사용하는 규칙(규칙)을 따릅니다.
flock($handle, lock type);
Type:
LOCK_SH 읽기 잠금
LOCK_EX 쓰기 잠금
LOCK_UN에 의해 잠금 해제됨
<?php //*********脚本1,想要读取文件信息*********** //尝试加读锁 $lock_result= flock($handle, LOCK_SH); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $str = fgets($handle, 1024); var_dump($str); sleep(5); echo '<br>'; $str = fgets($handle, 1024); var_dump($str); flock($handle, LOCK_UN);//解锁 ?> <?php //*********脚本2,想要往文件里写入信息*********** //尝试加写锁 $lock_result= flock($handle, LOCK_EX); //判断锁定结果 if(!$lock_result){ die('锁定失败,不能操作文件'); } //文件操作 $result = fwrite($handle, '123456'); flock($handle, LOCK_UN);//解锁 ?>
위의 스크립트 2가 기다려야 하는 경우 (B 잠긴 상태) 스크립트 1은 완료될 때까지 실행되지 않습니다. 잠금이 성공적으로 추가되었는지 판단해야 함을 강조합니다.
잠금이 실패할 때 차단하지 않으려면
$lock_result = flock($handle, LOCK_EX | LOCK_NB);
Unlock:
Flock($handle, LOCK_UN)을 사용하면 강제 잠금 해제되고,
Fclose()를 사용하면 자동으로 잠금이 해제됩니다!
관련 추천:
위 내용은 PHP 파일 기본 작업 예제 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!