PHP 파일 처리
PHP에는 파일 생성, 읽기, 업로드, 편집을 위한 다양한 기능이 있습니다.
주의: 파일을 주의해서 다루세요!
파일을 조작할 때는 매우 주의해야 합니다. 잘못하면 매우 심각한 피해를 입을 수 있습니다.
일반적인 실수는 다음과 같습니다.
1. 잘못된 파일 편집
2. 하드 드라이브를 정크 데이터로 채우기
3. 파일 내용 실수로 삭제
PHP readfile() 함수
readfile($filename)
함수: 파일 경로를 전달하고 파일을 출력
예를 들어 다음 내용이 포함된 file.txt라는 파일이 있습니다.
PHP 중국어 학습 PHP에 오신 것을 환영합니다
readfile() 함수에 대한 PHP 코드를 사용하여 이 파일을 읽고 출력 스트림에 기록하는 방법은 다음과 같습니다(읽기에 성공하면 readfile() 함수가 바이트 수를 반환합니다).
바이트 수 : 영어 1바이트 점유, gbk 인코딩 중국어 2바이트 점유 utf-8 중국어 3바이트 점유, 공백 및 기호 1개
<?php echo readfile("D:WWW/item/file.txt"); ?>
프로그램 연산 결과:
PHP 중국어 학습 PHP39에 오신 것을 환영합니다
file_get_contents파일 열기
위 파일만 열면 바로 출력됩니다. 파일을 연 후 변수에 할당할 수 있는 연산 방법이 있나요?
PHP는 확실히 이 방법을 제공합니다. 이 메소드는 PHP가 파일을 열고 내용을 반환하는 방법 중 하나입니다.
file_get_contents(문자열 파일 이름)
기능: 파일 또는 파일 경로를 전달하고 파일을 열고 파일 내용을 반환합니다. 파일의 내용은 문자열입니다.
예를 들어 다음 내용이 포함된 file.txt 파일이 있습니다.
file_get_contents open을 사용합니다
file_get_contents를 사용하여 열기
<?php $fileName="file.txt"; $filestring = file_get_contents($fileName); echo $filestring; ?>
프로그램 실행 결과:
file_get_contents open을 사용합니다
fopen, fread, fclose 작업 파일 읽기
fopen ($파일 이름, 모드)
fread ($작업 리소스, 읽기 길이)
fclose ($작업 리소스)
위 기능을 통해 리소스 종류별 일반적인 작업 방법을 설명하겠습니다.
1. 리소스 열기
2. 관련 기능을 활용한 조작
3. 리소스 닫기
>fopen 함수의 기능은 파일을 여는 것입니다: 1. 파일을 여는 경로
2. 리소스 유형에는 이 리소스를 작동하는 다른 기능이 필요합니다. 모든 리소스는 열 때 닫혀야 합니다.
fread
함수 함수의 기능은 열린 파일 리소스를 읽는 것입니다. 지정된 길이의 파일 리소스를 읽고 일부를 읽고 일부를 뒤로 이동합니다. 파일 끝까지.
fclose함수 fclose 함수의 기능은 리소스를 닫는 것입니다. 리소스가 열리고 닫힙니다.
fopen 모드(아래 표):
설명 | r |
r+ | |
w 쓰기만 가능합니다. 파일 내용을 열고 지웁니다. 파일이 없으면 새 파일을 만듭니다. | |
읽기/쓰기. 파일 내용을 열고 지웁니다. 파일이 없으면 새 파일을 만듭니다. |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
a+<🎜> | 읽기/추가. 파일 끝에 기록하여 파일 내용을 유지합니다. <🎜><🎜> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<🎜> < 🎜><🎜> x<🎜><🎜> | 만 쓰다. 새 파일을 만듭니다. 파일이 이미 존재하는 경우 FALSE와 오류를 반환합니다. <🎜><🎜> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
<🎜> < 🎜><🎜> x+<🎜><🎜> | 읽기 /쓰다. 새 파일을 만듭니다. 파일이 이미 존재하는 경우 FALSE와 오류를 반환합니다. <🎜><🎜> | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
t<🎜> | 창에서 n을 rn으로 변환<🎜><🎜> < 🎜><🎜>
Instance <?php header("Content-type:text/html;charset=utf-8"); //设置编码 $filename = 'test.txt'; $fp= fopen($filename, "r"); $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘'); fclose($fp); print $len .'字节被写入了\n'; ?> 프로그램 실행 결과:
r만으로 작성하는 데 실패했음 임시 파일 만들기 이전에 만든 파일은 영구 파일입니다. 임시 파일을 만드는 것은 일상적인 프로젝트 개발에도 매우 유용합니다. 임시 파일 생성의 여러 가지 이점 1. 사용 후 삭제 2. 이 파일의 삭제 상태를 유지할 필요가 없습니다 A의 삭제 파일 내용을 B로 전송하고 B의 파일 내용을 C로 전송합니다. 실생활과 마찬가지로 먼저 임시 병을 사용하여 B의 물을 채운 다음 A의 데이터를 B에 쓸 수 있습니다. 임시 병의 물을 C에 추가합니다. 이 기능을 배우자: resource tmpfile ( ) 기능: 임시 파일을 생성하고 리소스 유형을 반환합니다. 파일을 닫으면 삭제됩니다. 인스턴스 <?php header("Content-type:text/html;charset=utf-8"); //设置编码 $handle = tmpfile(); //向里面写入了数据 $numbytes = fwrite($handle, '写入临时文件的内容'); //关闭临时文件,文件即被删除 fclose($handle); echo '向临时文件中写入了'.$numbytes . '个字节'; ?> 프로그램 실행 결과:
파일 이동, 복사, 삭제 파일 이름 바꾸기 이름 바꾸기($이전 이름,$새 이름); 이 함수는 bool 값을 반환하고 이전 이름을 새 이름으로 변경합니다. 예 <?php $fileName1="text.txt"; $fileName2="text--1.txt"; rename($fileName1,$fileName2); ?> 위의 예는 text.txt 파일의 이름을 text--1.txt로 바꾸는 것입니다. 파일 복사 복사( 소스 파일 , 대상 파일) 기능 : 지정된 경로의 소스 파일을 대상 파일이 있는 위치에 복사합니다. 예제 <?php $filename = 'file.txt'; //旧文件名 $filename2 = 'copy-file.txt'; //新文件名 copy($filename, $filename2); //修改名字。 ?> 위 예는 파일 이름을 file.txt 파일로 지정하는 것입니다. , 동일한 내용이 포함된 copy-file.txt라는 파일을 복사합니다. 파일 삭제 연결 해제(지정된 경로의 파일) 예제 <?php header("Content-type:text/html;charset=utf-8"); //设置编码 $filename = 'test.txt'; unlink($filename); ?> 위의 예는 test.txt라는 파일을 삭제하는 예입니다 파일에서 자주 사용되는 기능 파일 크기 파일 크기 감지 예 <?php header("Content-type:text/html;charset=utf-8"); //设置编码 $filename = 'file.txt'; echo $filename . '文件大小为: ' . filesize($filename) . ' bytes'; ?> 프로그램 실행 결과:
기타 파일 조작, 파일 읽기 기능 < 테이블 너비 ="-642"> |
<🎜><🎜>기능<🎜><🎜> | 파일 | 전체 파일을 배열로 읽어옵니다 | fgets | 파일 포인터에서 한 줄을 읽고 끝까지 읽은 후 false를 반환 | fgetc | 파일 포인터에서 문자를 읽고 끝까지 읽은 후 false를 반환합니다. | ftruncate | 파일을 주어진 길이로 자릅니다. | 위의 모든 기능을 사용하기 위해 예제를 사용합니다. text.txt 파일에 파일 배치를 작성합니다:
fgetc가 하나를 읽습니다. <?php //以增加的r模式打开 $fp = fopen('text.txt','r+'); //你分发现每次只读一个字符 echo fgetc($fp) ."<br>"; //我要全部读取可以,读取一次将结果赋值一次给$string while($string = fgetc($fp)){ echo $string; } ?> 프로그램 실행 결과:
fgets는 한 번에 한 줄씩 엽니다. <?php //以增加的r模式打开 $fp = fopen('text.txt','r+'); //你分发现每次只读一个字符 echo fgets($fp)."<br>"; echo fgets($fp)."<br>"; echo fgets($fp)."<br>"; echo fgets($fp); ?> 프로그램이 실행됩니다. 결과:
파일 차단 기능 <?php //打开我们上面的text.txt文件 $file = fopen("text.txt", "a+"); //你可以数数20个字有多长,看看是不是达到效果了 echo ftruncate($file,10); fclose($file); ?> 프로그램을 실행하고 text.txt 파일을 열어서 20바이트가 있는지 확인하세요 파일의 시간 함수
Instance <?php header("Content-type:text/html;charset=utf-8"); //设置编码 $filename = 'text.txt'; if (file_exists($filename)) { echo "$filename"."文件的上次访问时间是: " . date("Y-m-d H:i:s", fileatime($filename))."<br>"; echo "$filename"."文件的创建时间是: " . date("Y-m-d H:i:s", filectime($filename))."<br>"; echo "$filename"."文件的修改时间是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?> 프로그램 실행 결과:
디렉터리 처리 기능 이전에는 처리한 내용이 모두 파일, 그 디렉토리 폴더는 어떻게 처리하나요? 디렉토리나 폴더 처리에 관련된 기능을 알아볼까요? 폴더 처리의 기본 아이디어는 다음과 같습니다. 1. 특정 경로를 판별할 때 폴더인지 확인 2. 폴더인 경우 지정된 폴더를 열고 파일 디렉터리의 리소스 변수를 반환 사용합니다. readdir은 디렉터리의 파일을 한 번 읽습니다. 4. readdir을 사용하여 끝까지 읽습니다. 읽을 수 있는 파일이 없으면 false를 반환합니다. 5. 파일 디렉토리를 닫습니다 자세히 알아보기 더 일반적으로 사용되는 기능:
인스턴스 <?php //设置打开的目录是D盘 $dir = "D:/"; //判断是否是文件夹,是文件夹 if (is_dir($dir)) { if ($dh = opendir($dir)) { //读取一次向后移动一次文件夹指针 echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; echo readdir($dh).'<br />'; //读取到最后返回false //关闭文件夹资源 closedir($dh); } } ?> 실행할 수 있습니다. 컴퓨터의 D 드라이브 디렉터리인지 확인하는 프로그램 파일 형식 확인 <?php //设置打开的目录是D盘 $dir = "D:/"; //判断是否是文件夹,是文件夹 if (is_dir($dir)) { if ($dh = opendir($dir)) { //读取到最后返回false,停止循环 while (($file = readdir($dh)) !== false) { echo "文件名为: $file : 文件的类型是: " . filetype($dir . $file) . "<br />"; } closedir($dh); } } ?> 프로그램을 실행해서 살펴보기 파일 경로 기능 우리는 자주 처리 중인 파일 경로 조건이 발생합니다. 예: 1. 파일 접미사를 제거해야 합니다. 2. 이름은 제외하고 디렉토리는 제외 3. 경로 이름에서 디렉토리 경로만 추출하면 됩니다 4. 또는 URL의 각 부분을 구문 분석하여 독립적인 값을 얻습니다 5. 아니면 직접 URL을 만들어도 나옵니다 경로 처리 클래스 기능을 사용해야 하는 곳이 많습니다. 모든 사람이 일반적으로 사용하는 경로 처리 기능을 표시했습니다.
pathinfo pathinfo (string $path) Instance <?php header("Content-type:text/html;charset=utf-8"); $path_parts = pathinfo('D:/www/a.html'); echo '文件目录名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件扩展名:'.$path_parts['extension']."<br />"; echo '不包含扩展的文件名:'.$path_parts['filename']."<br />"; ?> 프로그램 실행 결과:
basename basename ( string $path[, string $suffix]) Instance <?php echo "1: ".basename("d:/www/a.html", ".d")."<br>"; echo "2: ".basename("d:/www/include")."<br>"; echo "3: ".basename("d:/www/text.txt")."<br>"; ?> 프로그램 실행 결과:
dirname dirname(string $path ) Instance <?php $a=dirname(__FILE__); echo$a; ?>
프로그램 실행 parse_url parse_url (string $path) Instance <?php $url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); ?> 프로그램 실행 결과:
http_build_query http_build_query (처리할 $data 혼합) 인스턴스 <?php //定义一个关联数组 $data = [ 'username'=>'liwenkai', 'area'=>'hubei', 'pwd'=>'123' ]; //生成query内容 echo http_build_query($data); ?> 프로그램 실행 결과:
PHP 파일 시스템 참조 매뉴얼 PHP 파일 시스템 기능에 대한 전체 참조 매뉴얼을 보려면 PHP 파일 시스템 참조 매뉴얼을 방문하세요. ||
<?php
header("Content-type:text/html;charset=utf-8");
$data = "我是一个兵,来自老百姓";
$numbytes = file_put_contents('binggege.txt', $data);
if($numbytes){
echo '写入成功,我们读取看看结果试试:';
echo file_get_contents('binggege.txt');
}else{
echo '写入失败或者没有权限,注意检查';
}
?>
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~
이 강좌를 시청한 학생들도 학습하고 있습니다.
|