PHP의 파일 처리도 매우 중요한 모듈입니다. 이 글의 주요 내용은 PHP의 파일 시스템에 대한 소개입니다.
파일 시스템의 용도
1. 프로젝트 처리와 파일 처리는 불가분의 관계입니다
파일은 장기간 데이터를 저장하는 데 사용할 수 있습니다
3.캐시 생성, 서버
파일 시스템 기능 사용법 상세 설명
기본 판단 기능
is_dir — 지정된 파일 이름이 디렉터리인지 확인
is_file — 지정된 파일 이름이 파일인지 확인
is_executable — 지정된 파일 이름이 실행 가능한지 확인
is_link — 지정된 파일 이름이 심볼릭 링크인지 확인
is_readable — 지정된 파일 이름을 읽을 수 있는지 확인
is_uploaded_file — 파일이 HTTP를 통해 업로드되었는지 확인 POST
is_writable — 주어진 파일 이름이 쓰기 가능한지 확인
is_writeable — is_writable의 별칭
2. 파일 관련 가져오기 information
file_exists — 파일 또는 디렉터리가 존재하는지 확인
fileatime — 파일의 마지막 액세스 시간을 가져옵니다.
filectime — 파일의 inode 수정 시간을 가져옵니다. file
filegroup — 파일 그룹 가져오기
fileinode — 파일의 inode 가져오기
filemtime — 파일 수정 시간 가져오기
fileowner — 파일 소유자 가져오기
fileperms — 파일 권한 가져오기
filesize — 파일 크기 가져오기
filetype — 파일 형식 가져오기
아래 예를 작성하고 파일 이름을 전달하고 자세한 정보를 인쇄해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
함수getFileInfo($파일 이름){ if(!file_exists( $파일 이름)){ 에코'文件'.($파일 이름).' 불存재'; 반환; } if(is_file($파일 이름)){ 에코$파일 이름.'是一个文件'; } if(is_dir($파일 이름)){ 에코$파일 이름.'是一个目录'; } if(실행 가능($파일 이름)){ 에코$파일명.'是可执行文件'; }else{ 에코$ 파일 이름.'不是可执行文件'; } if(읽을 수 있음($파일 이름)){ 에코$파일 이름.'是可读的'; }else{ 에코 $파일 이름.'不是可读的'; } if(쓰기 가능($ 파일명)){ 에코$파일 이름.'是可写入的'; }그 외{ 에코$파일 이름.'不是可写入的'; } echo' 파일 '.$filename.'의 크기는 '. getFileSize(파일 크기($파일 이름)).''; echo''.$파일 이름.' 형식입니다. '.파일 형식($파일 이름).''; echo'파일의 소유자는 '.$filename.'은 '.fileowner ($파일명).''; 에코' '.$filename.' 파일의 마지막 액세스 시간은 '.getTime(fileatime입니다. ($파일 이름)).''; 🎜>echo' 파일 '.$filename.'의 inode는 '.fileinode입니다. ( >$파일 이름).''; 에코'파일'.$filename.'의 수정 시간은 '.getTime(filemtime($파일 이름)).''; echo' file '.$filename.'의 권한은 '.fileperms( $파일 이름).''; }
함수 getTime($시간){ 반품날짜 ('Y-m-d H:i:s',$시간); }기능 getFileSize($크기){ $dw='B'; if($size>=전력 (2,40)){ >/ 펑(2,40),2); > }else if($size> ;=전력(2,30)){ $크기=둥근($크기/폭(2 ,30),2); $dw='TB'; }elseif($size>=전력(2 ,20)){ $크기=둥근( $사이즈/마력(2,20),2); $dw='GB'; }elseif($크기>=힘(2,10)){ $크기=둥근($크기/폭(2,10),2); $dw ='MB'; } 반품$size.$dw; } getFileInfo('1.php'); |
실행 결과
1.php는 파일입니다
1.php는 실행 파일이 아닙니다
1.php는 읽을 수 있습니다
1.php는 쓸 수 없습니다
파일 1.php의 크기는 2MB입니다
파일 1.php의 유형은 file입니다
파일 1.php의 소유자는 1000입니다
파일 1. PHP의 마지막 액세스 시간은 2015-03-04 12:58:33
파일 1.php의 inode는 536185입니다
파일 1.php의 수정 시간은 2015-03-04 12:58:32입니다.
1.php 파일의 권한은 33204입니다
3. 파일 경로 관련 기능
상대 경로: 현재 디렉터리의 상위, 하위 디렉터리에 대한 상대 경로
. 현재 디렉터리
.. 이전 디렉터리
경로 구분 기호
linux/Unix “/”
windows “ ”
어떤 운영체제이든 상관없이 PHP의 디렉터리 구분 기호는 /(Linux)를 지원합니다.
절대 경로: 운영체제의 루트나 문서 루트 디렉터리를 참조할 수 있습니다.
서버(PHP 파일처리 함수를 통해 실행) 경로에서 실행되는 경우 "루트"는 운영체제의 루트를 의미합니다
프로그램이 다운로드된 클라이언트인 경우 서버의 파일에 액세스할 때 Apache를 통해서만 해당 파일에 액세스할 수 있습니다. "루트"는 문서 루트 디렉터리
세 가지 관련 함수
basename — 경로의 파일 이름 부분을 반환합니다.
dirname — 경로의 디렉터리 부분을 반환합니다.
pathinfo — 파일 경로 정보를 반환합니다.
예를 들어 다음 예
1
2
3
4
5
6
7
8
$url1="./aaa/bbb/index.php"; $url2="../www/yyy/login.rar"; $url3="c:/appserv /www/demo.html"; $url4= "http://localhost/yyy/ www.gif"; echo 기본 이름( $url1); echo 기본 이름($url2); echo 기본 이름($url3); echo 기본 이름($url4 ); |
|
결과 실행
index.php
login.rar
demo.html
www.gif
basename 함수는 마지막 항목인 파일 이름을 반환하는 것을 볼 수 있습니다.
dirname의 사용법을 살펴보겠습니다
1
2
3
4
5
|
$url1 ="./aaa/bbb/index.php"; $ url2 $ url3
=
|
1 2
3
4
5
|
터치("./php.apahce"); //파일 생성 연결 해제("C: /AppServ/www/xsphp/apache.php"); //파일 삭제 이름 바꾸기("./test.txt","d:/test2.txt") ; //파일 이름 바꾸기 복사("cache.txt","./cache5.txt"); // 파일 복사chmod(" a.txt" ,755); //파일 권한 설정 |
권한 관련 콘텐츠
예를 들어rwx는 이 파일의 소유자를 나타냅니다. r 읽기 w 쓰기 x 실행
rwx는 이 파일의 소유자 그룹을 나타냅니다. r 읽기 w x 쓰기 및
rwx 실행 다른 사용자는 이 파일에 대한 권한이 있습니다. r read w write >파일 이름을 입력하고 파일의 텍스트 정보를 직접 가져옵니다. 반환되는 내용은 파일의 텍스트입니다.
1
2
3
4
|
|
은 1.txt 파일의 콘텐츠를 직접 열고 파일의 텍스트 정보를 반환합니다.
파일이 없으면
경고: file_get_contents(2.txt): 스트림을 열지 못했습니다: 해당 파일 또는 디렉터리가 없습니다라는 메시지가 표시됩니다.마찬가지로 해당 파일은 원격 파일일 수도 있습니다. 예를 들어 http://www.qq.com
1
2
3
|
echofile_put_contents("2.txt",'abcd'); ?> |
2
1
2
3
4
5
|
$str=file("1.txt"); var_dump($str); echocount($str); ?> |
1 2
3
4
5
|
< 🎜><🎜>$str=파일("1.txt"); 스팬 ><🎜><🎜> var_dump ($str);<🎜><🎜> 에코횟수($str);< /스팬><🎜><🎜>?> |
은 행 내용을 배열 형태로 가져와서 행 수를 출력할 수 있습니다.
단점: 지정한 부분의 내용을 읽을 수 없습니다.
4.fopen(filename,mode)
filename은 파일 이름으로, 경로와 이름을 합친 것일 수도 있고 원격 서버 파일일 수도 있습니다.
모드는 파일을 여는 방식입니다
r, 읽기 전용 모드로 파일을 엽니다
r+, 읽는 것 외에도 쓸 수도 있습니다.
w, 쓰기 전용 모드로 엽니다. 파일이 없으면 파일을 만들고 내용을 씁니다. 파일이 존재하고 원래 내용이 있으면 원본 파일의 내용이 모두 지워진 다음 작성됩니다( 기존 중요 파일 열기)
w+, fwrite로 쓰는 것 외에도 쓰기 전용 모드로 열리는 fread
a를 읽을 수도 있습니다. 파일이 없으면 파일이 생성되고 내용이 저장됩니다. 해당 파일이 존재하고, 원본 내용이 있는 경우 원본 파일 내용은 삭제되지 않으며, 원본 파일 내용 끝에 (추가)
a+, 글쓰기 외에 새로운 내용이 작성됩니다. fwrite를 사용하면 fread를 읽을 수도 있습니다
b, 파일(그림, 영화) 열기
바이너리 모드에서
텍스트 모드에서 파일 열기 참고:
r+에는 파일 헤더부터 시작하여 읽기 및 쓰기 속성이 있습니다. 원본 파일에 덮어쓰지 않은 내용을 유지합니다.
w+에는 쓰기 중에 파일이 존재하면 지워집니다. 그리고 처음부터 작성했습니다.
은 파일 리소스를 반환합니다.
5.fwrite(file,content)
파일 쓰기 함수, file은 파일 리소스, fopen 사용 획득 방법 기능, 내용은 작성된 내용입니다. fputs 함수와 동일합니다.
예를 들어
1
2
3
4
5
6 7
8
9
|
|
1 2
3
4
5
|
< ? php<🎜><🎜><🎜><🎜><🎜>$file<🎜><🎜>=<🎜><🎜>fopen<🎜>(<🎜>"1.txt"<🎜>,< 🎜 >"r"<🎜>)<🎜>;<🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜>< 🎜 ><🎜><🎜><🎜>$content<🎜><🎜>=<🎜><🎜>fread<🎜>(<🎜>$file<🎜>,<🎜>filesize<🎜>(<🎜 > "1.txt"<🎜>)<🎜>)<🎜>;<🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜 > <🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜>에코<🎜><🎜>$content<🎜>;<🎜><🎜><🎜><🎜> < 🎜><🎜><🎜><🎜>?> |
그러나 위의 파일 크기 방법은 로컬 파일 크기만 얻을 수 있으며, 원격 파일을 읽으려면 다른 방법이 필요합니다.
예를 들어
1
2
3
4
5
6
7
8
|
<🎜><🎜>$file=fopen("http:// www .qq.com","r"); 스팬 ><🎜><🎜>$str=" " ;<🎜><🎜>동안( !feof($file)){ //파일 끝에 도달할 시간을 판단 스팬>< /span><🎜>< 🎜>$str.=fread($file,1024);<🎜><🎜> }<🎜><🎜>에코$str;< /span> <🎜><🎜>?> |
은 결과 8893을 출력합니다. 소스 파일을 확인하여 총 줄 수를 확인하고 확인할 수 있습니다.
7.fgetc(file)
file은 파일 리소스이며 매번 문자를 읽는 fgets 메서드와 매우 유사합니다. 예를 들어 Tencent의 홈페이지에 몇 개의 문자가 있는지 읽습니다.
1
2
3
4
5
6
7
8
9
10
|
$file=fopen("http://www.qq.com","r"); $str=""; $count=0; while(!feof($file)){ $str.=fgetc($file); $count++; } echo$count; ?> |
위 코드는 모든 문자를 출력합니다.
8.ftell(file)
ftell은 현재 읽은 파일의 포인터 위치를 반환하고, file은 파일 리소스이며 fopen이 반환하는 객체입니다.
9.fseek(file,offset,whence)
file
파일 시스템 포인터는 일반적으로 fopen()에 의해 생성되는 리소스입니다.
오프셋
오프셋.
파일 끝 이전 위치로 이동하려면 오프셋에 음수 값을 전달하고 whence를 SEEK_END로 설정합니다.
whence
SEEK_SET – 위치를 오프셋 바이트와 동일하게 설정합니다.
SEEK_CUR – 위치를 현재 위치에 오프셋을 더한 값으로 설정합니다.
SEEK_END – 위치를 파일 끝에 오프셋을 더한 값으로 설정합니다.
10.rewind($file)
파일 헤더로 돌아가서, file은 파일 리소스입니다.
예:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
php $file=fopen("1.txt", "r"); 에코ftell($file)." 에코fread($file,10)." 에코ftell($file)." fseek($file, 20,SEEK_CUR);//현재 포인터가 20단위 앞으로 이동합니다 에코ftell($file )." 에코fread($file ,10)." 에코ftell($file)." fseek ($file,-20,SEEK_END);//포인터가 끝으로 이동합니다. 파일 처음 20자 에코ftell($file)." 에코fread($file,10)." 에코ftell($file)."< br>";//10자를 읽은 후 포인터 위치 출력 되감기($file);//답글 파일헤더 바로가기 에코ftell($file)." ?> |
실행 결과:
0
cuiqingcai
10
30
uiqingcai.
40
374
i.comcuiqi
384
0
11.flock(file,Operation[,wouldblock])
file
파일 리소스 포인터. 일반적으로 fopen()에서 생성되는 리소스(리소스)입니다.
작업
작업은 다음 값 중 하나일 수 있습니다.
LOCK_SH는 공유 잠금(읽기 프로그램)을 획득합니다.
LOCK_EX는 배타적 잠금을 획득합니다(프로그램 작성.
LOCK_UN은 잠금(공유 또는 배타적)을 해제합니다.
flock()을 원하지 않는 경우 잠긴 동안 실행됩니다. 차단되면 LOCK_NB입니다(Windows에서는 아직 지원되지 않음).
차단
잠금이 차단되면(EWOULDBLOCK 오류 코드의 경우) 선택적 세 번째 매개변수 (Windows에서는 지원되지 않음)
예를 들어
1
2
3
4
5
6
7
<🎜 >php<🎜> <🎜><🎜><🎜><🎜><🎜>$file<🎜><🎜>=<🎜><🎜>fopen<🎜>(<🎜>"1.txt"<🎜 >,<🎜> "a"<🎜>)<🎜>;<🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜>< 🎜><🎜> <🎜><🎜><🎜>if<🎜>(<🎜>flock<🎜>(<🎜>$file<🎜>,<🎜>LOCK_EX<🎜>)<🎜>)<🎜 >{<🎜> <🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜>fwrite<🎜 >(<🎜> $file<🎜>,<🎜>"xxx"<🎜>)<🎜>;<🎜><🎜><🎜><🎜><🎜><🎜><🎜><🎜>< 🎜><🎜> <🎜><🎜>군집<🎜>(<🎜>$file<🎜>,<🎜>LOCK_UN<🎜>)<🎜>;<🎜><🎜><🎜><🎜>< 🎜><🎜> <🎜><🎜><🎜><🎜><🎜><🎜>}<🎜><🎜><🎜><🎜><🎜>?>
위에서는 PHP 고급 기능 2, 파일 처리에 대한 내용을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
|
|