PHP 파일 처리로그인

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+

  w

쓰기만 가능합니다. 파일 내용을 열고 지웁니다. 파일이 없으면 새 파일을 만듭니다.

읽기/쓰기. 파일 내용을 열고 지웁니다. 파일이 없으면 새 파일을 만듭니다.

     

  a

追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
  a+读/追加。通过向文件末尾写内容,来保持文件内容。

   

  x

只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

  

  x+

读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
  twindows下将n转为rn
     b二进制打开模式
<🎜> a<🎜><🎜><🎜> 추가. 파일을 열어 파일 끝에 쓰거나, 파일이 없으면 새 파일을 만듭니다. <🎜><🎜>
 a+<🎜> 읽기/추가. 파일 끝에 기록하여 파일 내용을 유지합니다. <🎜><🎜>
<🎜> < 🎜><🎜> x<🎜><🎜>만 쓰다. 새 파일을 만듭니다. 파일이 이미 존재하는 경우 FALSE와 오류를 반환합니다. <🎜><🎜>
<🎜> < 🎜><🎜> x+<🎜><🎜>읽기 /쓰다. 새 파일을 만듭니다. 파일이 이미 존재하는 경우 FALSE와 오류를 반환합니다. <🎜><🎜>
 t<🎜> 창에서 n을 rn으로 변환<🎜><🎜> < 🎜><🎜><🎜>b<🎜><🎜>바이너리 오픈 모드<🎜><🎜><🎜><🎜 >

1.

file.txt 파일을 엽니다. file.txt 파일은 다음과 같습니다

천만에요

<?php
//你可以创建一个file.txt,以只读模式打开
$fp = fopen('file.txt', "r");
//var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource
var_dump($fp);
?>

file

<?php
$fp = fopen('file.txt', "r");
//打开一个文件类型后,读取12个字节
$contents = fread($fp, 12);
?>

3. 파일을 닫습니다

<?php
$fp = fopen('file.txt', 'r');
$contents = fread($fp, 1024);
fclose($fp);
echo $contents;
?>

프로그램 실행 결과 :

천만에요


file_put_contents 및 fwrite write files

file_put_contents ( string $file path, string $write data])

기능: 지정된 파일에 쓰기 파일이 존재하지 않는 경우 생성하기 위한 문자열입니다. 쓴 바이트의 길이를 반환합니다.


인스턴스

<?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 '写入失败或者没有权限,注意检查';
}
?>

프로그램 실행 결과:

쓰기에 성공했습니다. 읽고 결과를 살펴보겠습니다. 나는 군인입니다. 서민 출신입니다


fwrite ( 자원 $file 자원 변수, 문자열 $기록 문자열[, int 길이 ])

참고: fwrite의 별칭 함수는 fputs입니다

위에서 r 모드를 시도했지만 읽을 때만 사용했습니다. 다음으로 fwrite를 사용하여 w를 추가합니다. fopen 쓰기 모드로 파일 쓰기

인스턴스

새로운 test.txt 파일을 생성하고 콘텐츠를 작성해볼 수 있습니다. 그런 다음 test.txt를 삭제해 보세요. 어떤 팁이 있는지 확인해보세요.

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'test.txt';
$fp= fopen($filename, "w");
$len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
fclose($fp);
print $len ."字节被写入了\n";
?>

프로그램 실행 결과:

66바이트 기록됨

요약:
1. 새 파일이 있든 없든 파일을 열고 다시 씁니다
2. 원본 파일 내용 덮어쓰기
3. 파일이 없으면 생성됩니다


다음 모드의 차이점을 비교해보세요.

  模式  说明
  r只能读不能使用fwrite写
  r+可操作读、写
  w只可以写功能
  w+

即可读又可以写


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';
?>

프로그램 실행 결과:

0바이트 기록 이후 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 . '个字节';
?>

프로그램 실행 결과:

임시 파일에 쓰기 입력됨 27바이트


파일 이동, 복사, 삭제

파일 이름 바꾸기

이름 바꾸기($이전 이름,$새 이름);

이 함수는 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';
?>

프로그램 실행 결과:

file.txt 파일 크기는 : 14바이트

기타 파일 조작, 파일 읽기 기능

< 테이블 너비 ="-642">
 
  函数名  功能
  file把整个文件读入一个数组中
  fgets从文件指针中读取一行,读到最后返回false
  fgetc从文件指针中读取一个字符,读到最后返回false
  ftruncate将文件截断到给定的长度
<🎜>함수 이름<🎜><🎜>
 <🎜><🎜>기능<🎜><🎜>
파일전체 파일을 배열로 읽어옵니다
 fgets파일 포인터에서 한 줄을 읽고 끝까지 읽은 후 false를 반환
 fgetc파일 포인터에서 문자를 읽고 끝까지 읽은 후 false를 반환합니다.
 ftruncate파일을 주어진 길이로 자릅니다.


위의 모든 기능을 사용하기 위해 예제를 사용합니다.

text.txt 파일에 파일 배치를 작성합니다:

abcdeefghijklk
opqrst
uvwxyz
12345678

fgetc가 하나를 읽습니다.

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgetc($fp) ."<br>";
//我要全部读取可以,读取一次将结果赋值一次给$string
while($string = fgetc($fp)){
    echo $string;
}
?>

프로그램 실행 결과:

a
bcdeefghijklk opqrst uvwxyz 12345678

fgets는 한 번에 한 줄씩 엽니다.

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp);
?>

프로그램이 실행됩니다. 결과:

abcdeefghijklk
opqrst
uvwxyz
12345678


파일 차단 기능

<?php
//打开我们上面的text.txt文件
$file = fopen("text.txt", "a+");
//你可以数数20个字有多长,看看是不是达到效果了
echo ftruncate($file,10);
fclose($file);
?>

프로그램을 실행하고 text.txt 파일을 열어서 20바이트가 있는지 확인하세요


파일의 시간 함수

< tr>
    函数   功能说明
    filectime  文件创建时间
    filemtime  文件修改时间
    fileatime  文件上次访问时间
<🎜> 기능<🎜> <🎜>
<🎜><🎜> 기능 설명< 🎜><🎜>
filectime 파일 생성 시간
filemtime 파일 수정 시간 파일 시간 파일 마지막 액세스 시간

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));
}

?>

프로그램 실행 결과:

text.txt 파일에 대한 마지막 액세스 시간은 : 2016-09-13 17:44:40
text.txt 파일 생성 시간은 : 2016-09-13 17:32:16
text.txt 파일 수정 시간은 : 2016-09 -13 17:44:55


디렉터리 처리 기능

이전에는 처리한 내용이 모두 파일, 그 디렉토리 폴더는 어떻게 처리하나요?

디렉토리나 폴더 처리에 관련된 기능을 알아볼까요?

폴더 처리의 기본 아이디어는 다음과 같습니다.

1. 특정 경로를 판별할 때 폴더인지 확인

2. 폴더인 경우 지정된 폴더를 열고 파일 디렉터리의 리소스 변수를 반환

사용합니다. readdir은 디렉터리의 파일을 한 번 읽습니다.

4. readdir을 사용하여 끝까지 읽습니다. 읽을 수 있는 파일이 없으면 false를 반환합니다.

5. 파일 디렉토리를 닫습니다

자세히 알아보기 더 일반적으로 사용되는 기능:


< tr>< td width="193" valign="top" style="border-width: 1px; border-style: solid; word-break: break-all ;">readdir
      函数名       功能
  opendir打开文件夹,返回操作资源
  readdir读取文件夹资源
  is_dir判断是否是文件夹
  closedir关闭文件夹操作资源
<🎜> 함수 이름<🎜>< 🎜>
<🎜><🎜> 기능 <🎜><🎜>
opendir폴더를 열고 운영 자원으로 돌아가기
폴더 리소스 읽기
 is_dir폴더인지 확인
 closedir폴더 닫기 작업 리소스
  filetype显示是文件夹还是文件,文件显示file,文件夹显示dir


인스턴스

<?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返回文件的各个组成部份
 basename返回文件名
    dirname文件目录部份
    parse_url 网址拆解成各部份
<🎜> 함수 이름< 🎜><🎜 >
<🎜>< 🎜> 기능< 🎜><🎜>
pathinfoReturn 문서
기본 이름 반환 파일 이름
디렉토리 이름파일 디렉터리 부분
parse_url URL을 여러 부분으로 나눕니다
   http_build_query生成url 中的query字符串
   http_build_url生成一个url

pathinfo

pathinfo (string $path)
기능: 파일 경로를 전달하고 각각을 반환합니다. file Component

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 />";
?>

프로그램 실행 결과:

파일 디렉터리 이름: D:/www
전체 파일 이름: a.html
파일 확장자: html
확장자가 없는 파일 이름: a


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>";
?>

프로그램 실행 결과:

1: a.html
2: include
3: text.txt


dirname

dirname(string $path )
기능 : 파일 경로 중 파일 디렉터리 부분을 반환

Instance

<?php
$a=dirname(__FILE__);
echo$a;
?>

프로그램 실행


parse_url

parse_url (string $path)
함수 : URL을 여러 부분으로 분할

Instance

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
var_dump(parse_url($url));
?>

프로그램 실행 결과:

배열(8) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "호스트 이름"
[ "port" ]=>
int(9090)
["user"]=>
string(8) "username"
["pass"]=>
string(8) "password"
["path"]=>
string(5) "/path"
["query"]=>
string(9) "arg=value "
["fragment"]=>
string(6) "anchor"
}


http_build_query

http_build_query (처리할 $data 혼합)
기능: url에 쿼리 문자열 생성

인스턴스

<?php
//定义一个关联数组
$data = [
    'username'=>'liwenkai',
    'area'=>'hubei',
    'pwd'=>'123'
];
//生成query内容
echo http_build_query($data);
?>

프로그램 실행 결과:

username= liwenkai&area=hubei&pwd=123


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 '写入失败或者没有权限,注意检查'; } ?>
코스웨어