PHPファイル読み込み機能の応用例

5314 ワード

PHPファイル読み込み操作は、ファイル書き込み操作よりも多くのPHPファイル操作関数に関連し、これらの関数はコードインスタンスで詳細に説明されます.
テキストファイルにデータを格納する方法は、主に3つのステップと一部のファイル操作関数に関連しています.
1、ファイルを開く(ファイル操作関数:fopen)2、ファイルデータ読み込み(ファイル操作関数:fgets、file、readfile、feofなど)3、ファイルを閉じる(ファイル操作関数:fclose)
以下、PHPファイルの読み書き操作コードの例でファイルの読み取り方法の具体的な応用を説明します.例では、異なるPHPファイルを呼び出して操作関数を読み出してテキストファイルのデータを読み取ることで、PHPファイルの読み取り操作関数の理解を深めることができ、PHPネットワークステーションの開発で合理的に応用することができます.テキストファイルに書き込まれたデータはPHPファイルの読み書き操作のファイル書き込みチュートリアルから来ており、fopen関数ではファイルの読み書きモードについても参照できます.
PHPファイル読み込み操作コードの例


$readFun = "fread";
switch ($readFun)
{
case "fgetss":
@$fp = fopen("leapsoulcn.txt","r") or die("system error");
$allowable_tags = "

"; while (!feof($fp)) { $output = fgetss($fp,100,$allowable_tags); echo $output; } fclose($fp); break; case "fgetcsv": @$fp = fopen("leapsoulcn.txt","r") or die("system error"); while (!feof($fp)) { $output = fgetcsv($fp,100,"\t"); print_r($output); } fclose($fp); break; case "readfile": echo readfile("leapsoulcn.txt"); break; case "fpassthru": @$fp = fopen("leapsoulcn.txt","r") or die("system error"); if(!fpassthru($fp)) exit(); fclose($fp); break; case "file": $output = file("leapsoulcn.txt"); print_r($output); break; case "fgetc": @$fp = fopen("leapsoulcn.txt","r") or die("system error"); while (!feof($fp)) { $str = fgetc($fp); echo ($str == "
"?"
":$str); } fclose($fp); break; case "fread": @$fp = fopen("leapsoulcn.txt","r") or die("system error"); echo fread($fp,300); fclose($fp); break; default: @$fp = fopen("leapsoulcn.txt","r") or die("system error"); while (!feof($fp)) { $output = fgets($fp,100); echo $output; } fclose($fp); break; } ?>


注記:上記の例では、$readFunに値を割り当てることで、fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetcなどの関数を含む異なるPHPファイル読み取り方法の呼び出しを実現できます.
PHPファイル読み込み操作関数fgets、fgetss、fgetcsvの違い
コードインスタンスでは、デフォルトのPHPファイル読み込み操作関数はfgetsであり、fgetssとfgetcsv関数の機能はfgetsと同様に、ファイルの末尾までファイルの行を1回読み込みます.ここでは、読み取りテキストファイルのデータ長を100、すなわち最大読み取り長を99(100-1)に設定し、改行やファイル終了子EOFに遭遇したり、99バイトをファイルから読み取り終えたりしたときにデータの読み取りを停止します.fgets関数は、ファイルが読み込んだデータ、文字列型を返します.
fgetss関数はfgets関数の変体であり、PHPとHTMLタグを剥離することができ、第3のパラメータを渡すことで不要なデータをフィルタリングすることができ、伝言帳でユーザーの入力データをフィルタリングすることができ、fgetss関数の原型は以下の通りである.
string fgetss(resource fp,int length, string[optional] allowable_tags)
allowable_tagsパラメータはオプションで、インスタンスではleapsoulcnに事前にいます.txtファイルにhtml、body、h 1タグを含む1行の文字が書き込まれ、コードにh 1タグのみが表示されるように設定されています.
fgetcsv関数はfgetsのもう一つの変形であり、テキストファイルに書き込まれたデータにデリミタが使用されている場合、fgetcsvを使用して1行を複数行に分解し、返された結果を配列に格納することができます.関数のプロトタイプは次のとおりです.
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)
delimiterはオプションですが、以前にファイルに書き込まれたデータではtを使っていたので、インスタンスではファイル読み出し関数fgetcsvのデリミタでtを使ってprint_r fgetcsvが返す配列構造を印刷します.
3つのPHPファイル読み出し操作関数fgets,fgetss,fgetcsvの共通点は,あらかじめfopen関数を用いて読み出したファイルを開く必要があるとともに,feof関数によりファイルポインタがファイルの末尾に到達したか否かを判断し,読み出し操作が完了した後にfclose関数を用いて文書を閉じることを忘れないことである.
fgetc:単一の文字を読み取るfgetc関数は、文字を読み取るために使用されます.コードインスタンスでは、文字に遭遇したときにhtmlファイルのbrタグに変換して、遊覧器に具体的な改行効果を表示します.もちろん、この関数の効率は低いに違いありません.使用することはお勧めしません.
PHPファイル読み込み操作関数readfile、fpassthru、fileの違い
3つの関数の共通点は、1行または文字を1回ではなく、ファイル全体を読み取ることです.違いは:readfile関数はファイルを開き、ファイルの内容を返して直接遊覧器に出力し、fopen関数と同様に、関数の戻り値はファイルの文字総数であり、readfile関数の2番目のパラメータはオプションであり、PHPがinclude_にあるかどうかを示す.pathでファイルを検索します.コードインスタンスでは、echo文を使用して読み込んだファイルの内容を出力するのではなく、読み込んだファイルの文字の総数を出力し、読み込んだファイルの内容readfile関数が自動的に出力されていることを明確にする必要があります.readfile関数のプロトタイプは、int readfile(string filename,int[optional]use_include_path)です.
file関数は、読み込んだファイルの内容を1つの配列に送り、行ごとに1つの配列単位を読み出す別の方法です.file関数のプロトタイプは、array file(string filename,bool[optional]use_include_path)
fpassthru()関数は、ファイルポインタの残りのすべてのデータを出力するために使用されます.すなわち、ファイルポインタが先頭にない場合、ファイルポインタの後ろのデータのみが出力されます.この関数は、指定されたファイルポインタを現在の位置からEOFに読み込み、結果を出力バッファに書き込み、出力された文字数を返します.エラーが発生した場合、FALSEに戻ります.readfile()関数と比較して、fpassthru()関数はまずファイルを開き、データの読み取りが終わったらファイルを閉じる必要があります.
freadとfile_exists、filesize関数
fread関数は、ファイルから任意のバイトを読み出すか、lengthを満たすか、ファイルの末尾に読み出すかのいずれかの方法でもあります.read関数のプロトタイプは次のとおりです.
string fread(resource fp,int length)
fread関数を使用する場合、ファイルのすべてのデータを読み取りたい場合、ファイルのデータ長が分からない場合、filesize関数はこの問題を解決します.


  @$fp = fopen("leapsoulcn.txt","r") or die("system error");
  echo fread($fp,filesize("leapsoulcn.txt"));
  fclose($fp);
?>

PHPファイルの読み書き操作チュートリアルではfileを使用したことがありません.exists関数は、通常PHPサイトの開発において、様々な考慮から、ファイルが存在しない場合、新しいファイルを作成するのではなく、fopen関数を使用する前にfile_を使用する必要があります.exists関数は、ファイルが存在するか否かを判断する.


if(file_exists("leapsoulcn.txt"))
{
  //  PHP      
}
?>

以上、PHPがファイル内容を読み取る様々な方法を紹介しましたが、PHPファイルの読み書き操作関数を合理的に適用することで、簡単な伝言帳、ウェブサイトのロゴ記録などの機能を実現することができます.