PHPファイル読み込み操作

7855 ワード

ファイルモード
  • ファイルを開く読み取り専用のために、書き込みまたは読み取りと書き込みのみを行います.
  • ファイルを書く場合は、既存のコンテンツを上書きして書き換えるか、新しいデータをファイルの最後に追加するだけです.ファイルが既に存在する場合は、ファイルを上書きするのではなく、プログラムの実行を終了できます.
  • バイナリ方式と純テキスト方式を区別したシステムにファイルを書く場合は、採用方法を指定する必要があります.

  • fopen()関数ファイルモードまとめ
  • r
  • 読み取り専用、読み取りモード、ファイルを開き、ファイルヘッダから
  • を読み始める
  • r+
  • 読み取り専用、読み取りモード、ファイルを開き、ファイルヘッダから
  • を読み始める
  • w
  • 書き込みのみ、書き込みモード、ファイルを開き、ファイルヘッダから書き始めます.ファイルが既に存在する場合は、ファイルのすべての内容が削除されます.ファイルが存在しない場合、関数はこのファイルを作成します.
  • w+
  • 書き込みのみ、書き込みモード、ファイルを開き、ファイルヘッダから書き始めます.ファイルが既に存在する場合は、ファイルのすべての内容が削除されます.ファイルが存在しない場合、関数はこのファイルを作成します.
  • x
  • 慎重に書き、書き込みモードでファイルを開き、ファイルヘッダから書き始めます.ファイルがすでに存在する場合、ファイルは開かれず、fopen()関数はfalseを返します.phpは警告を生成します.
  • x+
  • 慎重に書き、読み取り/書き込みモードでファイルを開き、ファイルヘッダから書き始めます.ファイルがすでに存在する場合、ファイルは開かれず、fopen()関数はfalseを返します.phpは警告を生成します.
  • a
  • 追加、ファイルを開き、そのファイルに内容がある場合はファイルの末尾から追加(書き込み)し、ファイルが存在しない場合は関数はこのファイル
  • を作成する.
  • a+
  • 追加、ファイルを開き、そのファイルに内容がある場合はファイルの末尾から追加(書き込み)し、ファイルが存在しない場合は関数はこのファイル
  • を作成する.
  • b
  • バイナリモードは、他のモードと接続するために使用されます.ファイルシステムがバイナリファイルとテキストファイルを区別できる場合は、彼を使用する可能性があります.windowsシステムは区別できますが、unixは区別できません.このオプションを使用して、最大限の移植性を得ることをお勧めします.バイナリはデフォルトのモードです.
  • t
  • テキストは、他のモードとの結合に使用されます.このモードはwindowsシステムの次のオプションにすぎません.彼はコードでbオプションを使用したことがない限り、推奨オプションではありません.

  • fopen()関数
    $DOCUMENT=$_SERVER['DOCUMENT_ROOT'];
    $fp=fopen("$DOCUMENT/order.txt","rb");
    
    fclose($fp); //      ,        。
  • 最初のパラメータは、開くファイル
  • です.
  • 第2パラメータ指定読み書きモード
  • の3番目のパラメータ、オプションのパラメータ、include_pathでファイルを検索すると、彼を使用することができます.このような操作を行う場合は、このパラメータを1に設定できます.phpでincludeを検索する場合はpathでは、ディレクトリ名やパスを指定する必要はありません.
  • @$fp=fopen("order.txt","rb","true");
  • の4番目のパラメータ、オプションのパラメータ、fopen()関数を使用すると、ファイル名がプロトコル名(http://など)で開始され、リモートの場所でファイルが開きます.この追加のパラメータについては、他のプロトコルもサポートしています.この関数の使用については、この章の次回で詳しく説明します.
  • fopen()関数が正常にファイルを開くと、このファイルへのファイルポインタが返されます.ファイルポインタは$fpに保存されます.この変数でファイルにアクセスできます.

  • ftpまたはhttpでファイルを開く
  • 使用するファイル名がftp://で始まる場合、fopen()関数は指定したサーバにリンクされたパッシブモードを確立し、ファイルの開始を指すポインタを返します.
  • ファイル名がhttp://で開始された場合、fopen()関数は指定したサーバへのhttpリンクを確立し、http応答へのポインタを返します.
  • URLのドメイン名では大文字と小文字は区別されませんが、パスとファイル名では大文字と小文字が区別される場合があります
  • ファイルを開くときに発生する可能性のある問題
    $DOCUMENT=$_SERVER['DOCUMENT_ROOT'];
    @$fp=fopen("$DOCUMENT/order.txt","rb");

    @により,ファイルオープン中にphpが自動的に投げ出すエラー情報を抑制し,$fpのブール値に対してファイルが正常にオープンしたか否かを判断し,対応する論理処理を行うことができる.
    ファイルを書く
    fwrite($fp,$outputString,int length);
  • この関数は、outputStringの文字列をfpで指定されたファイルに書き込むことを指定します.
  • の3番目のパラメータ、オプションのパラメータで、書き込むデータの長さを指定します.この関数を使用して書き込む場合、文字列の末尾に書くかlengthバイトに書き込むと、そのうちの1つを満たすと書き込みが停止します.
  • strlen($outputString);
  • php内蔵文字列長取得関数
  • ファイルを閉じる
    fclose($fp);
  • ファイルが正常に閉じられた場合、関数はtrueを返します.逆にfalse.普通は間違いありません.

  • ファイルを読む
    feof($fp);
  • ファイルポインタがファイルの末尾を指す場合、trueが返されます.
  • feof == file end of file

  • 1行のデータを読み込むたびに
    fgets($fp,999);
  • この関数は、ファイルから1行のデータを読み出すたびに、データを読み込み続けます.改行文字()、またはファイル終了文字EOF、またはファイルから998 Bが読み出されます.読み取り可能な最大長さは、指定された長さから1 Bを減算する.
  • fgetss($fp,999string allowtags);
  • 前の関数のバリエーションで、文字列に含まれるPHPとHTMLタグをフィルタできます.特殊なタグをフィルタする場合は、allowtags文字列に含めることができます.読み込んだ文字列に悪意のあるhtmlなどのコードが含まれていることを避け、Webスタイルを破ることができます.
  • fgetcsv($fp,999string [,string delimiter [, string enclosure]]);
  • は、フォームドメインを分割するためのデリミタをこの関数に渡す必要があります.
  • $order=fgetcsv($fp,100string ,"\t");
  • 以上のコードは、ファイルから1行読み出され、タブ(t)のある場所でファイル内容が行分けされます.関数の結果は配列を返します.
  • パラメータlengthは、読み込むファイルの中で最も長いデータ行の文字数よりも大きいはずです.
  • enclosureパラメータは、各行の各ドメインを閉じる文字を指定するために使用されます.文字が設定されていない場合は、デフォルトでは「二重引用符」です.
  • そうかんかんすう
    readfile(“    ”); //    ,              (   ) ,         。
    
    
    $DOCUMENT=$_SERVER['DOCUMENT_ROOT'];
    @$fp=fopen("$DOCUMENT/order.txt","rb");
    fpssthru($fp);
    //              
    
    
    
    $filearray=file(“    ”);
    //           
    
    
    file_get_contents();
    // readfile()    ,               。               。
    
    
    fgetc($fp);
    //          
    
    
    fread(resource fp,int length);
    //      ,   length             。
    
    
    file_exists(    );
    //      ,   
    
    filesize(    );
    //      ,
    
    nl2br(string);
    //      

    unlink( ); // , , false rewind($fp); // 。 ftell($fp); // fseek(resource fp,int offset [, int where]); // fp where offset 。 where

    ファイルのロック
  • 複数のプロセスが同時に1つのファイルにアクセスすることによるデータ処理のエラーを回避するために、1つのファイルにアクセスするときにこのファイルをロックすることが望ましい.
  • LOCK_SH読み込み操作ロックは、ファイルが共有可能であることを意味し、他の人はそのファイルを読み取ることができる.LOCK_EX書き込み操作ロックは、反発的である.このファイルは、共有LOCK_UNによって既存のロックLOCK_NBがロック要求時にブロックが発生することを防止することができない
    flock(resource fp, int operation [, int & wouldblock]);
  • ファイルのロックに成功した場合、trueを返し、falseを返します.