기본 PHP 개발 튜토리얼: PHP 파일 작업

1. 파일 시스템

1. 파일을 삭제하려면 마우스 오른쪽 버튼을 클릭하고 복사하려면 Ctrl+C(또는 마우스 오른쪽 버튼을 클릭)합니다. 파일을 붙여넣고 새 파일을 만듭니다. 일부 파일의 경우 해당 파일이 읽기 전용인지 확인하세요.

2. 컴퓨터에서 수행되는 이러한 작업을 코드에서 수행할 수 있다면 좋을 것입니다.

3. 왜냐하면, 이런 작업이 있다면. 우리는 많은 일을 할 수 있습니다:

  • 구성 파일을 작성하고 수정할 수 있나요?

  • PHP 설치 시 파일 권한 감지가 가능한가요?

  • Html 파일 생성 및 기타 다양한 작업이 가능합니까

  • ..... 파일 작업이 다른 곳에서 너무 많이 사용됩니다.

4. 파일 처리를 배우는 것은 본질적으로 파일 처리 기능을 배우는 것입니다. 이전에 작성한 코드와 결합하여 비즈니스 처리 능력을 향상시키세요.


2. 파일 읽기

1.readfile 파일 읽기

그렇다면 파일을 읽는 방법은 무엇입니까? 먼저 함수를 배워보겠습니다.

int readfile (string $filename)

기능: 파일 경로를 전달하고 파일을 출력합니다.

아래 코드에서는 파일 이름이나 지정된 파일 경로만 전달되면 파일을 읽습니다.

<?php
    //linux类的读了方式
    readfile("/home/paul/test.txt");
    //windows类的读取方式
    readfile("c:\boot.ini");
?>

참고: 위 코드의 Windows 슬래시는 슬래시이므로 일부 문자가 이스케이프될 수 있습니다. 따라서 글을 쓸 때 슬래시를 두 개 씁니다.

2.file_get_contents 파일 열기

위는 단순히 파일을 연 후 바로 출력한 내용인데 변수에 할당할 수 있는 연산이 있을까요? 파일을 연 후?

PHP는 확실히 이 방법을 제공합니다. 이 메소드는 PHP가 파일을 열고 내용을 반환하는 방법 중 하나입니다.

string file_get_contents(string filename)

기능: Pass 파일 또는 파일 경로를 입력하고 파일을 열고 파일 내용을 반환합니다. 파일의 내용은 문자열입니다.

<?php
    $filename = 'NoAlike.txt';
    $filestring = file_get_contents($filename);
    echo $filestring;
?>

위 코드는 파일을 열고 파일 내용을 출력하는 코드입니다.

기존 지식을 바탕으로 코드를 확장해 보겠습니다. 이전 지식을 활용하세요.

rree

위에서는 앞서 배운 지식을 결합했습니다.

3. fopen, fread 및 fclose 작업은 파일을 읽습니다.

위의 file_get_contents 파일 열기 방법은 간단하고 투박합니다. 다음

  • 리소스 fopen(문자열 $파일 이름, 문자열 모드)

  • string fread(리소스 $작업 리소스, int 읽기 길이)

  • bool fclose ( 리소스 $ 작업 리소스)

위 함수를 통해 리소스 유형의 일반적인 작업 방법을 설명합니다.

  • 리소스 열기

  • 관련 기능을 활용한 조작

  • 리소스 닫기

fopen 함수 fopen 함수의 기능은 두 가지 주요 매개변수가 있습니다:

l 파일을 여는 경로

l Open 파일의 모드

반환 유형은 이전 기본 유형에서 언급한 리소스 유형을 처음 접한 것입니다.
이 리소스를 작동하려면 리소스 유형에 다른 기능이 필요합니다. 모든 리소스는 열 때 닫혀야 합니다.

fread 함수 함수의 기능은 열린 파일 리소스를 읽는 것입니다. 지정된 길이의 파일 리소스를 읽고 일부를 읽고 일부를 뒤로 이동합니다. 파일 끝까지.

fclose 함수 fclose 함수의 기능은 리소스를 닫는 것입니다. 리소스가 열리고 닫힙니다.

기능을 이해하고 나면 마지막 두 기능은 비교적 간단합니다. fopen 함수의 모드는 무엇인가요? fopen의 모드에 대해 알아보겠습니다.


38.png


다음에는 r 모드만 배워보겠습니다. 다음 강의에서는 다른 여러 모드에 대해서도 이야기해보겠습니다.


3. 파일 쓰기를 잘하려면 먼저 파일을 읽는 방법을 알아야 합니다.

1. 파일 열기

<?php
    //假设我们有一个多行的文件叫NoAlike.txt,没有的话你可以新建一个这个文件
     $filename = 'NoAlike.txt';
    //打开这个文件,将文件内容赋值给$filestring
    $filestring = file_get_contents($filename);
    //因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组
    $filearray = explode("\n", $filestring);
    //把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。
    while (list($key, $val) = each($filearray)) {
        ++$key;
        $val = trim($val);
        //用的单引号,单引号不解释变量进行了拼接而已
        print 'Line' . $key .':'.  $val.'<br />';
    }
?>

2. 파일 읽기

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

3. 파일을 닫습니다

<?php
    $fp = fopen('NoAlike.txt', "r");
 
    //打开一个文件类型后,读取长度
    $contents = fread($fp, 1024);
?>

기타 참고 사항:

39.png


사용 예:


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

설명: 이 실험은 육안으로 이 실험의 효과를 확인할 수 없습니다. 이 기능만 기억해두세요.

Windows에서는 n을 rn으로 투명하게 변환하는 텍스트 변환 태그('t')를 제공합니다.

반대로 'b'를 사용하여 데이터가 변환되지 않도록 바이너리 모드를 강제할 수도 있습니다. 이러한 플래그를 사용하려면 모드 인수의 마지막 문자로 'b' 또는 't'를 사용하십시오.


4. 파일 내용 생성 및 수정

1.file_put_contents가 파일에 기록됩니다

먼저 파일을 작성하는 첫 번째 방법을 알아봅시다:

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

Function : 지정된 파일에 문자열을 쓰고, 파일이 없으면 생성합니다. 반환되는 것은 쓴 바이트의 길이입니다

<?php
$fp = fopen($filename, 'ab');
$contents = fwrite($fp, '可爱的很\n哟');
fclose($fp);
echo $contents;
?>

파일을 쓰는 것이 매우 간단하다는 것을 알았습니다. 이 함수의 형식에 따라 파일을 지정하고 문자열 데이터를 씁니다.

2.fwrite는 fopen과 협력하여 쓰기 작업을 수행합니다

int fwrite (resource $ file 리소스 변수, string $에 기록된 문자열 [, int length ])

참고: fwrite의 별칭 기능은 fputs입니다

저번 수업에서는 읽을 때만 사용했던 r 모드를 사용해 보았습니다. 다음으로 fopen에서 fwrite + w를 사용하여 쓰기 모드에서 파일을 씁니다.

기능을 살펴보겠습니다.

쓰기 모드로 열고 파일 포인터를 파일 헤더로 가리키고 파일 크기를 0으로 자릅니다. 파일이 존재하지 않으면 파일 생성을 시도합니다.

참고: 다음 실험에서는 새 test.txt 파일을 만들고 여기에 콘텐츠를 쓸 수 있습니다. 그런 다음 test.txt를 삭제해 보세요. 어떤 팁이 있는지 확인해보세요.

<?php
    $data = "我是一个兵,来自老百姓";
 
    $numbytes = file_put_contents('binggege.txt', $data);
 
    if($numbytes){
 
        echo '写入成功,我们读取看看结果试试:';
 
        echo file_get_contents('binggege.txt');
 
    }else{
        echo '写入失败或者没有权限,注意检查';
    }
?>

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

그러면 다음 모드의 차이점을 비교해 보겠습니다.

40.png

증명해 보겠습니다. 실험을 통해 확인하세요:

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "w");
    $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    fclose($fp);
    print $len .'字节被写入了\n";
?>

실험할 때 r 뒤의 + 기호를 제거할 수 있습니다.

실험을 통해 r 모드를 사용하면 파일 저장 시 데이터 쓰기가 가능하다는 것을 확인했습니다. r만 사용하면 쓰기가 실패합니다.

3. a 모드와 w 모드의 차이점

아래는 같은 코드인데, 모드로 변경합니다. <…

요약:

41.png4.x 모드와 w 모드의 차이점

이 코드를 실험해 보겠습니다. 다시 한 번 >로 변경해 보세요. $filename을 다른 파일 이름으로 변경하면 문제가 없습니다. 그런데 다시 새로고침을 해보니

x+는 강화된 x 모드라는 오류가 떴네요. 읽을 때에도 사용할 수 있습니다.

5. 임시 파일 만들기

이전에 만든 파일은 영구 파일입니다.


임시 파일을 만드는 것은 일상적인 프로젝트 개발에도 매우 유용합니다. 임시 파일 생성의 여러 가지 이점:


1. 작성을 마친 후 삭제하세요.

2. 이 파일은 삭제 상태를 유지할 필요가 없습니다. 🎜> 예: A의 파일 내용을 B로 전송하고, B의 파일 내용을 C로 전송해야 합니다.

실생활과 마찬가지로 먼저 임시 병을 사용하여 B의 물을 채운 다음 A의 데이터를 B에 쓸 수 있습니다. 임시 병의 물을 C에 추가합니다.

이 기능을 배워봅시다:

resource tmpfile ( )

기능: 임시 파일을 생성하고 리소스 유형을 반환합니다. 파일을 닫으면 삭제됩니다. 아아앙

6. 파일 이동, 복사 및 삭제

1. 이름 바꾸기

$old name, $new name);

이 함수는 bool 값을 반환하여 이전 이름을 새 이름으로 변경합니다.

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "r+");
    $len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
    fclose($fp);
    print $len .'字节被写入了\n';
?>

디렉토리를 열면 지정된 파일이 대상 경로에 복사되는 것을 확인할 수 있습니다.

2. 파일 복사

파일 복사는 원본을 새로운 것으로 복제하는 복제 기술과 동일합니다. 둘 다 똑같아 보입니다.

bool copy(소스파일, 타겟파일)

기능: 지정된 경로의 소스파일을 타겟파일 위치에 복사한다.

실험과 코드를 통해 놀아보자:

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "a");
    $len = fwrite($fp,'读大学迷茫了,PHP学院PHP给你希望');
    echo  $len .'字节被写入了\n';
?>

요약:
위의 예시를 보면 추가 파일이 있다는 것을 알 수 있다.

3. 파일 삭제

파일 삭제는 지정된 경로의 파일을 삭제하는 것을 의미하지만, 이 삭제는 직접 삭제입니다. Windows 컴퓨터를 사용하는 경우 휴지통에서 이 파일을 볼 수 없습니다.

이 파일이 사라진 것만 알 수 있습니다.

bool unlink(지정된 경로의 파일)

<?php
    $filename = 'test.txt';
    $fp= fopen($filename, "x");
    $len = fwrite($fp,'读大学迷茫了,PHP学院PHP给你希望');
    echo  $len .'字节被写入了\n';
?>

7. 파일 속성 감지 기능

파일 속성 감지가 어디에 사용되는지 특히 궁금해하는 학생들이 있습니다. 파일 속성 감지는 너무 많은 곳에서 사용될 수 있습니다.

예를 들어 보겠습니다.

1. 소프트웨어를 설치할 때 파일이 있으면 다른 위치로 이동합니다.

2. 설치 과정에서 일부 파일에 쓰기 권한이 없으면 설치가 허용되지 않습니다.

중국의 매우 유명한 소프트웨어인 discuz의 설치 과정을 스크린샷으로 찍어보겠습니다.

42.png

위의 예는 일반적인 파일 탐지 사용법입니다.

다음 함수 배치를 배워보겠습니다. 그럼, 예를 통해 배워보겠습니다.

bool file_exists($파일 이름 또는 파일 경로 지정)
기능: 파일이 존재하는지 여부.

bool is_readable($파일 이름 또는 파일 경로 지정)
기능: 파일을 읽을 수 있는지 여부

bool is_writeable($specify 파일 이름 또는 파일 경로)
기능: 파일 쓰기 가능 여부

bool is_executable($는 파일 이름 또는 파일 경로 지정)
기능: 파일이 실행 가능한지 여부

bool is_file ($는 파일 이름 또는 파일 경로 지정)
기능: 파일인지 여부

bool is_dir($ 파일 이름이나 파일 경로를 지정합니다)
기능: 디렉터리인지 여부

voidclearstatcache(void)
기능: 파일의 상태 캐시를 지웁니다

위 기능을 한눈에 알 수 있었습니다. 실험에 관해서는 처음에 제시한 예를 작성해 보겠습니다.

첫 번째 예인 파일 잠금에 대해 이야기해 보겠습니다. 설치된 경우 설치 잠금이 있으면 설치되었다는 메시지가 표시되고, 그렇지 않으면 설치가 계속됩니다.

설치 인터페이스의 URL은 install.php이고 설치된 잠금 파일은 install.lock이라고 가정합니다. install.lock 파일이 존재하는지 감지할 수 있습니다.

<?php
    //创建了一个临时文件
    $handle = tmpfile();
 
    //向里面写入了数据
    $numbytes = fwrite($handle, '写入临时文件');
 
    //关闭临时文件,文件即被删除
    fclose($handle);
 
    echo  '向临时文件中写入了'.$numbytes . '个字节';
?>

파일이나 디렉터리에 쓰기 또는 읽기 권한이 있는지 확인하기 위해 파일 설치 감지 실험을 해보겠습니다. 그렇지 않으면 설치를 수행할 수 없습니다.

이 문제를 처리하는 아이디어는 다음과 같습니다.

1. 권한을 감지해야 하는 배열의 배치를 정의합니다.

2. 폴더 또는 파일

3. 설정 비트 변수를 만듭니다. 설정 비트 변수가 false이면 다음 설치 단계가 표시되지 않습니다.

<?php
    //旧文件名
    $filename = 'test.txt';
 
    //新文件名
    $filename2 = $filename . '.old';
 
    //复制文件
    rename($filename, $filename2);
?>

위의 예를 통해 해냈습니다. 특정 PHP 소프트웨어의 설치 프로세스 중에 설치 감지를 구현합니다.

이것이 우리의 위 아이디어의 실현입니다.


8. 파일에 대한 공통 기능 및 상수

1. 파일 작업에 대한 상수

가장 일반적으로 사용되는 상수는 다음과 같습니다. 파일 디렉터리의 구분 기호인 상수입니다.

형식을 살펴보겠습니다.

43.png

Windows의 경로 형식은 d:xxxxxx입니다. 참고: Windows는 d:/xxx/xxx를 지원합니다
linux 경로 형식은 /home/xxx/xxx입니다. 참고: Linux에서 homexxxxxx가 잘못된 경우
이스케이프 등을 활성화할 때 이스케이프 문자를 함께 사용하면 d:xxxxxx는 동일합니다. 판단할 때 2개가 있는데 하나로 변환한 후 /를 바꿔서 경로를 분할하면 Linux나 Windows에서 경로가 통일된 상태를 유지할 수 있습니다.

상수를 사용합니다:
DIRECTORY_SEPARATOR

현재 파일의 경로를 정의하는 간단한 예를 작성해 보겠습니다.

FILE은 PHP 상수의 사전 설정이므로 정의되어 있으므로 변경할 방법이 없습니다. 필요한 경우 FILE도 운영 체제에 맞게 조정할 수 있습니다.
그러면 FILE을 사용하지 않고 사용자 정의 상수를 사용하여 다음과 같이 FILE을 처리할 수 있습니다.

<?php
    //旧文件名
    $filename = 'copy.txt';
 
    //新文件名
    $filename2 = $filename . '_new';
 
    //修改名字。
    copy($filename, $filename2);
?>

2. 파일 포인터 작업 기능

rewind( 리소스 핸들)

함수: 포인터를 시작 부분으로 되돌리기

fseek( 리소스 핸들, int offset [, int from_where] )
기능: 파일 포인터를 지정된 문자만큼 뒤로 이동

이전 읽기에서 fread가 지정된 길이의 데이터를 읽는 것을 발견했습니다. 지정된 길이의 내용을 읽습니다. 다음에 읽을 때에는 원래 위치부터 다시 읽습니다.

44.png

위 그림과 같이 상상할 수 있습니다.

1. 파일을 처음 열면 빨간색 아이콘이 읽혀집니다

2. 파일 가색상을 A에서 C로 읽습니다

3. 데모.txt 파일에 파일 배치를 작성합니다:

  • Abcdeefghijklk

  • Opqrst

  • Uvwxyz

  • 12345678

실험을 시작해 보겠습니다.

<?php
    $filename = 'test.txt';
 
    if (unlink($filename)) {
        echo  "删除文件成功 $filename!\n";
    } else {
        echo "删除 $filename 失败!\n";
    }
?>

위의 예에서 fseek는 지정된 길이만큼 바이트를 이동하는 것을 볼 수 있습니다. 그리고 되감기는 매번 파일의 시작 부분으로 돌아갑니다.

끝까지 나아가는 방법은? 바이트 수를 셀 수 있습니다. fseek 중에 바로 뒤로 이동합니다.

파일 크기 통계 바이트에 대해 이야기해 보겠습니다.

3.filesize는 파일의 크기를 감지합니다

<?php
if(file_exists('install.lock')){
    echo '已安装,请不要再次进行安装';
    exit;
}
?>

4. 파일 운영을 위한 기타 기능

실제로는 다른 기능도 있습니다. 운영 파일, 읽기 파일 가져오기

45.png

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

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

abcdeefghijklk
opqrst
uvwxyz
12345678

<?php
 
//可以定义一批文件是否存在
$files = [
    'config.php',
    'img/',
    'uploads/',
];
 
//定义标志位变量
$flag = true;
foreach($files as  $v){
    echo $v;
 
    //判断是文件还是文件夹
 
    if(is_file($v)){
        echo '是一个文件    ';
    }else if(is_dir($v)){
        echo '是一个文件夹    ';
    }
 
    if(is_readable($v)){
        echo ' 可读';
    }else{
         echo '<font color="red">不可读</font>';
    }
 
    if(is_writeable($v)){
        echo '可写';
    }else{
        echo '<font color="red">不可写</font>';
    }
 
    echo '<br />';
}
 
if($flag){
    echo '<a href="step1">下一步</a>';
 
}else{
     echo '不能进行安装';
}
?>

fgets는 한 번에 한 줄씩 열립니다:

<?php
$_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__);
define('__CUR_FILE__', $_current_file);
echo __CUR_FILE__;
?>

위 코드를 사용하면 각 읽기가 한 번에 한 줄씩 열리는 것을 알 수 있습니다. 최종 읽기 반환이 거짓입니다.

다음으로 파일 가로채기 기능을 살펴보겠습니다.

<?php
$fp = fopen('output.txt', 'r+');
//读取10个字符
echo fread($fp,10);
 
//指针设置回到开始处
rewind($handle);
//再读取10次看看输出的是什么
echo fread($fp,10);
 
//文件指针向后移动10个字符
echo fseek($fp,10);
 
//再看看文件中输出的是什么
echo fread($fp,10);
 
fclose($handle);
?>

위의 예에서는 가로채기만 하면 콘텐츠를 표시할 수 있다는 것을 알 수 있었습니다.

5. 파일의 시간 함수

46.png

<?php
$filename = 'demo.txt';
echo $filename . '文件大小为: ' . filesize($filename) . ' bytes';
?>



9. 파일 잠금 메커니즘

파일 잠금 메커니즘은 일반적으로 단일 파일을 열 때 전혀 효과가 없습니다. 학습의 이 부분은 약간 추상적입니다.

어떻게 달성할지 고민되시나요?

왜 효과를 볼 수 없나요?
답변: 컴퓨터는 기본적으로 밀리초 수준으로 매우 빠르게 작동하기 때문입니다. 따라서 이 실험은 실제로 아무런 효과가 없습니다.

이 장에서는 파일 잠금의 기본 개념을 이해하고 파일 잠금 기능과 잠금 메커니즘에 익숙해집니다.

파일 잠금 사용:

한 사람이 파일을 쓰고 있으면 다른 사람도 파일을 열어서 파일을 씁니다.
이 경우 어느 정도 충돌 가능성이 있다면 누구의 작전이 승리할지 모르겠습니다.
그래서 이번에는 잠금 장치를 소개합니다.
사용자 A가 이 파일을 쓰거나 읽는 경우 파일을 공유에 추가합니다. 나는 그것을 읽을 수 있고 다른 사람들도 읽을 수 있습니다.
그러나 만약 그렇다면. 전용 자물쇠를 사용하고 있습니다. 이 파일은 제가 파일 잠금을 해제하지 않는 한 제 것입니다.

참고: 파일 잠금 추가 여부에 관계없이 잠금을 해제할 때 주의하세요.

이 함수를 살펴보겠습니다.

bool Flock(resource $handle, int $Operation)

함수 : 가벼운 상담 파일 잠금

잠금 종류를 살펴보겠습니다:

47.png

demo.txt에 전용 잠금을 추가하고 쓰기를 진행하겠습니다. 작업.

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

설명:

위의 예에서는 파일에 쓰기 위해 파일에 배타적 잠금을 추가했습니다.

나의 작업이 완료되면 쓰기가 완료된 후 전용 잠금이 해제됩니다.

파일을 읽는 중이라면 동일한 처리 아이디어에 따라 공유 잠금을 추가할 수 있습니다.


10. 디렉토리 처리 기능

모든 파일을 처리하기 전인데 디렉토리와 폴더는 어떻게 처리하나요?

디렉터리나 폴더 처리에 관련된 기능을 배워보겠습니다.

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

특정 경로를 읽을 때 폴더인지 확인합니다.

폴더인 경우 해당 경로를 엽니다. 지정된 폴더를 지정하고 파일을 반환합니다. 디렉터리의 리소스 변수

readdir을 사용하여 디렉터리의 파일을 한 번 읽고 디렉터리 포인터가 뒤로 한 번 오프셋됩니다.

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

파일 디렉터리를 닫습니다

일반적으로 사용되는 기능 목록을 살펴보겠습니다.

48.png

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

한 번 읽고 뒤로 한 번 이동하면

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


파일 권한 설정

파일 권한 설정 이 기능은 시스템 관리 수준 소프트웨어에서 일반적으로 사용됩니다. 예: 게스트 그룹(게스트 사용자)은 특정 파일을 볼 수 없습니다.

기업 관리에서는 특정 사용자 또는 특정 사용자 파일을 읽기만 허용하고 수정할 수 없습니다. 매우 자주 사용되는 기능들입니다.

참고:

이 장은 이해 장입니다. 이전에 Linux를 배운 적이 없고 조금 어려울 경우 이 장을 건너뛰고 이에 대해 배울 수 있습니다.

은 실제 생산 과정에서는 유용성이 떨어집니다.

주로 Linux 기반의 종합적인 지식 시스템을 갖추고 학습에 집중할 수 있는 학생들을 대상으로 합니다.

창 아래 일부 기능은 구현할 수 없습니다.

49.png

위 기능 사용법은 리눅스 권한 동작 사용법과 동일합니다.
리눅스를 배운 학생들에게는 비교적 쉽습니다. 배워보지 않은 분들은 조금 어려울 것 같아요.

권한을 수정하는 방법을 보여주는 예를 들어 보겠습니다.

chmod는 주로 파일의 권한을 수정합니다.

<?php
$filename = 'demo.txt';
if (file_exists($filename)) {
    echo "$filename文件的上次访问时间是: " . date("Y-m-d H:i:s", fileatime($filename));
    echo "$filename文件的创建时间是: " . date("Y-m-d H:i:s", filectime($filename));
     echo "$filename文件的修改时间是: " . date("Y-m-d H:i:s", filemtime($filename));
}
?>



12. 파일 경로 기능

1. 🎜>

파일 경로를 처리하는 상황이 자주 발생합니다.

예:

파일 접미사를 제거해야 합니다.

경로에서 이름을 제거해야 하지만 디렉터리는 제외해야 합니다.

디렉터리만 제거해야 합니다. 경로 이름의 경로를 제거해야 합니다

또는 URL의 각 부분을 구문 분석하여 독립적인 값을 얻습니다

또는 URL을 직접 구성

... ....

경로 처리 클래스의 기능이 여러 곳에 필요합니다.

모든 사람이 일반적으로 사용하는 경로 처리 기능을 표시했습니다.

50.png

2.Pathinfo

array pathinfo (string $path)
함수: 파일 경로를 전달하고 파일의 다양한 구성 요소를 반환합니다

구체적인 예를 사용합니다. 살펴보기:

<?php
$fp = fopen("demo.txt", "r+");
 // 进行排它型锁定
if (flock($fp, LOCK_EX)) {
    fwrite($fp, "文件这个时候被我独占了哟\n");
   // 释放锁定
    flock($fp, LOCK_UN);    
} else {
    echo "锁失败,可能有人在操作,这个时候不能将文件上锁";
}
fclose($fp);
?>

결과는 다음과 같습니다.

파일 디렉터리 이름: d:/www
전체 파일 이름: lib.inc.php
파일 확장자: php
파일 없음 확장명이 있는 이름: lib.inc

3.Basename

string basename( string $path[, string $suffix ])
함수: Pass 경로에 넣고 파일 이름을 반환합니다.

첫 번째 매개변수가 경로에 전달됩니다.
두 번째 매개변수는 파일 이름이 지정된 문자에 도달하면 중지되도록 지정합니다.

<?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 />';
       //读取到最后返回false
       //关闭文件夹资源
        closedir($dh);
    }
}
?>

결론: 실행하여 파일의 디렉터리 부분이 반환되는지 확인할 수 있습니다.

5.parse_url

혼합된 구문 분석 URL(문자열 $path)
기능: URL을 여러 부분으로 분할

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

결과는 다음과 같습니다.

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

6.http_build_query

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

<?php
//修改linux  系统/var/wwwroot/某文件权限为755
chmod("/var/wwwroot/index.html", 755);  
chmod("/var/wwwroot/index.html", "u+rwx,go+rx");
chmod("/somedir/somefile", 0755);
?>

결과는 다음과 같습니다.

username=liwenkai&area=hubei

http_build_url()
기능: URL 생성

참고:
PHP_EOL 상수
는 Windows 플랫폼의 echo "rn"과 같습니다.
은 echo "와 같습니다. n"은 unixlinux 플랫폼에서 ;
mac 플랫폼에서는 echo "r"과 동일합니다.




13. 텍스트 방명록

파일 처리 시스템에 대해 수없이 이야기했지만 가장 기본적인 것조차 작성하지 못했습니다.

이 섹션부터 시작하면 점점 더 많은 것을 쓸 수 있다는 것을 알게 될 것입니다.

다음으로 데모 효과를 살펴보겠습니다.

다음 인터페이스에서 메시지 내용을 작성하는 양식 인터페이스:

나간 후 디스플레이 인터페이스 message :

51.png

파일 구조를 살펴보겠습니다:

index.php --- 입력 상자 및 메시지 내용 표시
write.php ---message.txt에 데이터 쓰기
message.txt ---채팅 내용 저장

index.php 파일

<?php
$path_parts = pathinfo('d:/www/index.inc.php');
 
echo '文件目录名:'.$path_parts['dirname']."<br />";
echo '文件全名:'.$path_parts['basename']."<br />";
echo '文件扩展名:'.$path_parts['extension']."<br />";
echo '不包含扩展的文件名:'.$path_parts['filename']."<br />";
?>

방금 표시된 콘텐츠를 읽고 나면 파일이 언제 저장되는지 알 수 있습니다.

섹션이 섹션 간에 구분됩니다

특수 기호를 사용하기 전에 콘텐츠와 사용자가 구분됩니다

파일에 메시지를 쓰는 write.php 코드를 작성해 보겠습니다.

<?php 
echo "1: ".basename("d:/www/index.d", ".d").PHP_EOL;
echo "2: ".basename("d:/www/index.php").PHP_EOL;
echo "3: ".basename("d:/www/passwd").PHP_EOL; 
?>
4.Dirname
dirname(string $路径) 功能:返回文件路径的文件目录部份
<?php
dirname(__FILE__);
?>
지속적인 학습
||
<?php //linux类的读了方式 readfile("/home/paul/test.txt"); //windows类的读取方式 readfile("c:\\boot.ini"); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~