PHP 파일 열기 닫 기 및 쓰기 동작 예제 분석

머리말
PHP 는 파일 업로드 기능 을 지원 하기 때문에 PHP 파일 에 관 한 조작 을 배 우 는 것 이 필수 적 입 니 다.이 필 기 는 PHP 파일 시스템 에 관 한 지식 을 기록 합 니 다.
파일 열기 및 닫 기
파일 처 리 는 읽 기,닫 기,재 작성 등 을 포함 합 니 다.예 를 들 어 파일 에 접근 하려 면 3 단계 가 필요 합 니 다.파일 열기,읽 기,쓰기,파일 닫 기.다른 작업 은 읽 기와 쓰기 파일 에 포함 되 거나(예 를 들 어 내용 표시,쓰기 내용 등)파일 자체 의 속성 과 관계 가 있 거나(예 를 들 어 파일 옮 겨 다 니 기,파일 이름 바 꾸 기 등).
1.파일 열기
PHP 에서 fopen()함수 로 파일 을 엽 니 다.fopen()함수 의 문법 은 다음 과 같 습 니 다.

resource fopen ( string filename, string mode [, bool use_include_path]);
4.567917.filename 은 경 로 를 포함 하 는 파일 이름 으로 상대 경로 일 수도 있 고 절대 경로 일 수도 있 습 니 다.접두사 가 없 으 면 로 컬 파일 을 열 었 음 을 표시 합 니 다
  • mode 는 파일 을 여 는 방식 입 니 다.취 할 수 있 는 값 은 다음 표 와 같 습 니 다
  • use_include_path 는 선택 할 수 있 습 니 다.이 매개 변 수 는 설정 파일 php.ini 에서 F:\AppServer\www\\mess.php 와 같은 경 로 를 지정 합 니 다.서버 가 이 경로 에서 지정 한 파일 을 열 려 면 1 또는 true 로 설정 할 수 있 습 니 다.
  • mode
    패턴 이름
    설명 하 다.
    r
    읽 기만 하 다
    읽 기 모드-읽 기,파일 포인터 가 파일 의 시작 에 있 습 니 다.
    r+
    읽 기와 쓰기
    읽 기와 쓰기 모드―읽 기와 쓰기,파일 지침 은 파일 의 시작 에 있 습 니 다.기 존 파일 내용 의 끝 에 쓰기 전에 기 존 내용 을 덮어 씁 니 다.
    w
    쓰다
    쓰기 모드-파일 을 쓰 고 파일 포인터 가 헤더 파일 을 가리 키 고 있 습 니 다.이 파일 이 존재 하면 모든 파일 내용 이 삭 제 됩 니 다.그렇지 않 으 면 함수 가 이 파일 을 만 듭 니 다.
    w+
    읽 기와 쓰기
    읽 기 쓰기 모드-읽 기 쓰기,파일 포인터 가 헤더 파일 을 가리 키 고 있 습 니 다.이 파일 이 존재 하면 모든 파일 의 내용 이 삭 제 됩 니 다.그렇지 않 으 면 함수 가 이 파일 을 만 들 것 입 니 다.
    x
    신중하게 쓰다
    쓰기 모드 에서 파일 을 열 고 파일 헤더 부터 쓰 십시오.파일 이 존재 하면 이 파일 은 열 리 지 않 습 니 다.함수 가 false 로 돌아 가면 PHP 에서 경고 가 발생 합 니 다.
    x+
    신중하게 쓰다
    읽 기/쓰기 모드 에서 파일 을 열 고 파일 헤더 부터 씁 니 다.이 파일 이 존재 하면 이 파일 은 열 리 지 않 습 니 다.함수 가 false 로 돌아 가면 PHP 에 경고 가 발생 합 니 다.
    a
    추가
    추가 모드 로 파일 을 엽 니 다.파일 포인터 가 끝 파일 을 가리 키 고 있 습 니 다.이 파일 에 내용 이 있 으 면 내용 말미 부터 추가 합 니 다.파일 이 존재 하지 않 으 면 함수 가 이 파일 을 만 듭 니 다.
    a+
    추가
    추가 모드 로 파일 을 엽 니 다.파일 포인터 가 헤더 파일 을 가리 키 고 있 습 니 다.이 파일 에 내용 이 있 으 면 파일 말미 부터 추가 하거나 읽 습 니 다.파일 이 존재 하지 않 으 면 함수 가 이 파일 을 만 듭 니 다.
    b
    2 진법
    이 진 모드-다른 모드 와 연결 하 는 데 사 용 됩 니 다.파일 시스템 이 바 이 너 리 파일 과 텍스트 파일 을 구분 할 수 있다 면 사용 할 수 있 습 니 다.Windows 는 구분 할 수 있 습 니 다.유 닉 스 는 구분 하지 않 는 다.이 옵션 을 사용 하면 최대한 이식 이 가능 합 니 다.기본 모드 입 니 다.
    t
    텍스트
    다른 모델 의 결합 에 사용 합 니 다.이 모드 는 윈도 의 다음 선택 일 뿐 입 니 다.
    2.파일 닫 기
    파일 작업 이 끝 난 후에 이 파일 을 닫 아야 합 니 다.그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.PHP 에서 fclose()함 수 를 사용 하여 파일 을 닫 습 니 다.이 함수 의 문법 은 다음 과 같 습 니 다.
    
    bool fclose ( resource handle ) ;
    이 함 수 는 인자 handle 이 가리 키 는 파일 을 닫 습 니 다.성공 하면 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.파일 포인터 가 유효 하고 fopen()함 수 를 통 해 성공 적 으로 열 린 파일 이 어야 합 니 다.예 를 들 면:
    
    <?php
      $f_open =fopen("../file.txt.","rb");   //    
      …  //       
      fclose($f_open)   //                 
    ?>
    파일 읽 기
    1.파일 에서 데이터 읽 기
    파일 에서 데 이 터 를 읽 으 면 한 글자,한 줄 의 문자열 또는 전체 파일 을 읽 을 수 있 고 임의의 길이 의 문자열 도 읽 을 수 있 습 니 다.
    전체 파일 읽 기:readfile(),file(),fileget_contents()。
    (1)readfile()함수
    readfile()함 수 는 파일 을 읽 고 출력 버퍼 에 기록 하 는 데 사 용 됩 니 다.오류 가 발생 하면 false 로 돌아 갑 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    int readfile(string filename)
    readfile()함 수 를 사용 하면 파일 을 열거 나 닫 을 필요 가 없고 echo/print 등 출력 문 구 를 필요 로 하지 않 으 며 파일 경 로 를 직접 쓰 면 됩 니 다.
    (2)file()함수
    file()함수 도 전체 파일 의 내용 을 읽 을 수 있 습 니 다.file()함수 만 파일 내용 을 줄 별로 배열 에 저장 합 니 다.줄 바 꿈 자 를 포함 합 니 다.실패 하면 false 로 돌아 갑 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    array file(string filename)
    (3)file_get_contents()함수
    이 함 수 는 파일 내용(filename)을 문자열 로 읽 습 니 다.offset 과 maxlen 인자 가 있 으 면 인자 offset 이 지정 한 위치 에서 길이 가 maxlen 인 내용 을 읽 기 시작 합 니 다.실패 하면 false 로 돌아 갑 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    string file_get_contents(string filename[,int offset[,int maxlen]])
    이 함 수 는 바 이 너 리 대상 에 적용 되 며 전체 파일 의 내용 을 문자열 에 읽 는 가장 좋 은 방법 입 니 다.
    예시:
    readfile()함수,file()함수,file 사용 하기get_contents()함수 가 각각 tm.txt 의 내용 을 읽 습 니 다.
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>      </title>
    <style type="text/css">
    <!--
    body,td,th {
      font-size: 12px;
    }
    body {
      margin-left: 10px;
      margin-top: 10px;
      margin-right: 10px;
      margin-bottom: 10px;
    }
    -->
    </style></head>
    <body>
    <table border="1" cellspacing="0" cellpadding="0">
     <tr>
      <td width="280" height="25" align="right" valign="middle" scope="col">  readfile()        :</td>
      <td height="25" align="center" valign="middle" scope="col">
      <?php readfile('tm.txt'); ?>  </td>
     </tr>
     <tr>
      <td height="25" align="right" valign="middle">  file()        :</td>
      <td height="25" align="center" valign="middle">
      <?php
        $f_arr = file('tm.txt');
        foreach($f_arr as $cont){
          echo $cont."<br>";
        }
      ?></td>
     </tr>
     <tr>
      <td width="280" height="25" align="right" valign="middle" scope="col">  file_get_contents()        :</td>
      <td height="25" align="center" valign="middle" scope="col">
      <?php
    
        $f_chr = file_get_contents('tm.txt');
        echo $f_chr;
    
      ?></td>
     </tr>
    </table>
    </body>
    </html>
    
    효과:

    한 줄 의 데이터 읽 기:fgets()와 fgets()
    (1)fgets()함수
    fgets()함 수 는 한 줄 의 데 이 터 를 읽 는 데 사 용 됩 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    string fgets( int handle [, int length] )
    handle 은 열 린 파일 입 니 다4.567917.length 는 읽 을 데이터 길이 입 니 다함 수 는 handle 지정 한 파일 에서 한 줄 을 읽 고 길이 의 최대 값 을 되 돌려 줍 니 다.
    length-1 바이트 의 문자열 입 니 다.줄 바 꿈 문자,EOF 를 만 나 거나 length-1 바이트 를 읽 은 후에 중단 합 니 다.length 인 자 를 무시 하면 줄 이 끝 날 때 까지 데 이 터 를 읽 습 니 다.
    (2)fgets()함수
    fgets()함 수 는 fgets()함수 의 변형 으로 한 줄 의 데 이 터 를 읽 는 동시에,
    fgets()함 수 는 읽 힌 내용 의 html 와 phop 표 시 를 걸 러 냅 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    string fgetss ( resource handle [, int length [, string 
    allowable_tags]] )
    이 함 수 는 읽 은 파일 에서 html 와 phop 표 시 를 걸 러 낼 수 있 습 니 다.사용 가능
    allowable_tags 매개 변 수 는 어떤 태그 가 걸 러 지지 않 는 지 제어 합 니 다.
    예시:fgets()함수 와 fgets()함 수 를 사용 하여 각각 fun.php 파일 을 읽 고 표시 합 니 다.
    fun.php:
    
    <table width="200" border="0" cellspacing="0" cellpadding="0">
     <tr>
      <td height="20" align="center" valign="middle" scope="col"><font color='red'>I am red.</font></td>
      <td height="20" align="center" valign="middle" scope="col"><font color='green'>I am green.</font></td>
     </tr>
     <tr>
      <td height="20" align="center" valign="middle"><font color='black'>I am black.</font></td>
      <td height="20" align="center" valign="middle"><font color='pink'>I am pink. </font></td>
     </tr>
    </table>
    
    index.php:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>fgets fgetss   </title>
    <style type="text/css">
    <!--
    body,td,th {
      font-size: 12px;
    }
    body {
      margin-left: 10px;
      margin-top: 10px;
      margin-right: 10px;
      margin-bottom: 10px;
    }
    -->
    </style></head>
    <body>
    <div align="left"></div>
    <table border="1" cellspacing="0" cellpadding="0">
     <tr>
      <td height="30" align="right" valign="middle" scope="col">  fgets  :</td>
      <td height="30" align="center" valign="middle" scope="col">
    <?php
      header("Content-Type:text/html;charset=utf-8");
      $fopen = fopen('fun.php','rb');
      while(!feof($fopen)){
        echo fgets($fopen);
      }
      fclose($fopen);
    ?> </td>
     </tr>
     <tr>
      <td height="30" align="right" valign="middle">  fgetss  :</td>
      <td height="30" align="center" valign="middle">
      <?php
      $fopen = fopen('fun.php','rb');
      while(!feof($fopen)){
        echo fgetss($fopen);
      }
      fclose($fopen);
    ?> </td>
     </tr>
    </table>
    </body>
    </html>
    
    효과:

    문자 읽 기:fgec()
    특정한 문 자 를 찾 고 바 꿀 때 특정한 문 자 를 목적 성 있 게 읽 어야 합 니 다.PHP 에 서 는 fgec()함수 로 이 기능 을 수행 할 수 있 습 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    string fgetc ( resource handle )
    이 함 수 는 handle 이 가리 키 는 파일 에서 문 자 를 되 돌려 줍 니 다.EOF 를 만나면 false 로 돌아간다.
    임의의 길이 의 문자열 읽 기:fread()
    fread()는 파일 에서 지정 한 길이 의 데 이 터 를 읽 을 수 있 습 니 다.함수 문법 은 다음 과 같 습 니 다.
    
    string fread ( int handle, int length )
    인자 handle 은 가리 키 는 파일 자원 입 니 다.length 는 읽 을 바이트 수 입 니 다.함수 가 length 바이트 를 읽 거나 EOF 에 도 착 했 을 때 실행 을 중단 합 니 다.
    2.데 이 터 를 파일 에 쓰기
    데 이 터 를 쓰 는 것 도 PHP 에서 자주 사용 하 는 파일 작업 입 니 다.PHP 에 서 는 fwrite()와 file 을 사용 합 니 다.put_contents()함수 가 파일 에 데 이 터 를 기록 합 니 다.
    fwrite()함수 도 fputs()라 고 부 르 는데 그들의 용법 은 같다.fwrite()함수 의 문법 은 다음 과 같다.
    
    int fwrite ( resource handle, string string [, int length] )
    이 함 수 는 내용 string 을 파일 포인터 handle 에 기록 합 니 다.길이 length 를 지정 하면 length 바이트 에 기록 한 후 중단 합 니 다.파일 내용 길이 가 length 보다 작 으 면 모든 파일 내용 을 출력 합 니 다.
    file_put_contents()함 수 는 PHP 5 에 추 가 된 함수 로 문법 은 다음 과 같 습 니 다.
    
    int file_put_contents ( string filename, string data [, int 
    flags])
    filename 은 데 이 터 를 기록 하 는 파일 입 니 다.data 는 기록 할 데이터 입 니 다.flags 는 FILEUSE_INCLUDE_PATH、FILE_APPEND 또는 LOCKEX,LOCK_EX 독점 잠 금.
    file 사용put_contents()함 수 는 fopen(),fwrite(),fclose()함 수 를 순서대로 호출 하 는 기능 과 같 습 니 다.
    예제:fwrite 함 수 를 사용 하여 파일 에 데 이 터 를 기록 하고 file 을 사용 합 니 다.put_contents()함수 가 데 이 터 를 기록 합 니 다.
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>  fwrite file_put_contents      </title>
    <style type="text/css">
    <!--
    body,td,th {
      font-size: 12px;
    }
    body {
      margin-left: 10px;
      margin-top: 10px;
      margin-right: 10px;
      margin-bottom: 10px;
    }
    -->
    </style></head>
    <body>
    <?php
    header("Content-Type:text/html;charset=utf-8");
      $filepath = "05.txt";
      $str = "                <br>";
      echo " fwrite      :";
      $fopen = fopen($filepath,'wb') or die('     ');
      fwrite($fopen,$str);
      fclose($fopen);
      readfile($filepath);
      echo "<p> file_put_contents      :";
      file_put_contents($filepath,$str);
      readfile($filepath);
    ?>
    </body>
    </html>
    
    효과:

    파일 내용 을 읽 고 쓸 수 있 는 것 외 에 복사,이름 바 꾸 기,수정 날짜 보기 등 파일 자체 도 조작 할 수 있다.PHP 에 대량의 파일 조작 함수 가 내장 되 어 있 습 니 다.
    
     - bool copy( string path1, string path2):    path1   path2。    ,  true,     false。  :copy('tm.txt','../tm.txt')
    
    
     - bool unlink( string filename )    ,    true,     False。  :unlink(‘./tm.txt')
    
    
     - int fileatime( string filename )              ,   UNIX        。  :fileatime('1.txt')
    
    
     - int filemtime( string filename )              ,   UNIX        。  :date('Y-m-dH:i:s',filemtime('1.txt'))
    
    
     - int filesize( string filename )    filename  (bytes)。  :filesize('1.txt')
    
    
     - array pathinfo(string name [, int options])      ,    name     。 dirname、basename extension。    option        , PATHINFO_DIRNAME、PATHINFO_BASENAME PATHINFO_EXTENSION。
           。  :
    $arr =pathinfo('/tm/sl/12/5/1.txt');
    foreach($arras$method=>$value{
      echo$method.“:”.$value.“<br>”;
    }
    
    
    
     - string realpath ( string filename )    filename     。 c:\tmp\…\1.txtrealpath('1.txt')
    
    
     - array stat ( string filename )      ,         ,          、       
     $arr = stat('1.txt');
     foreach($arr as $method => $value){
       echo $method.": ".$value."<br>";
     }
    PHP 파일 열기 닫 기 및 읽 기 쓰기 동작 예제 해석 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 PHP 파일 열기 닫 기 및 읽 기 쓰기 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기