この記事では主にPHPのファイル読み込み機能の応用例とよく使われるファイルデータ読み込み機能の使い方と違いについて紹介していますので、困っている方は参考にしてください。
PHP ファイルの読み取り操作には、ファイルの書き込み操作よりも多くの PHP ファイル操作関数が含まれます。これらの関数については、コード例で詳しく紹介します。
テキスト ファイルに保存されたデータを読み取る方法には、主に次の 3 つのステップといくつかのファイル操作関数が含まれます。
1. ファイルを開きます (ファイル操作関数: fopen)。ファイルデータの読み込み (ファイル操作関数: fgets、file、readfile、feof など)
3. ファイルを閉じる (ファイル操作関数: fclose)
#以下では引き続き PHP ファイルの読み書き操作を使用します。ファイルの読み取り方法の具体的な応用例をコード例で説明します。この例では、さまざまな PHP ファイル読み取り操作関数を呼び出してテキスト ファイル内のデータを読み取ることで、PHP ファイル読み取り操作関数の理解を深めます。 PHP Web サイト開発に合理的に適用できます。テキスト ファイルに書き込まれるデータは、PHP ファイルの読み取りおよび書き込み操作に関するファイル書き込みチュートリアルから取得されます。fopen 関数のファイル読み取りおよび書き込みモードについては、この記事も参照してください。
PHP ファイル読み取り操作コードの例
<? $readFun = "fread"; switch ($readFun) { case "fgetss": @$fp = fopen("leapsoulcn.txt","r") or die("system error"); $allowable_tags = "<h1>"; 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 == "\n"?"<br/>":$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 に割り当てることで、さまざまな PHP ファイル読み取りメソッドを呼び出すことができます。フェッチ操作に関係する PHP ファイル読み取り。関数には、fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc およびその他の関数が含まれます。
PHP ファイル読み込み操作関数 fgets、fgetss、fgetcsv の違いコード例では、デフォルトの PHP ファイル読み込み操作関数は fgets、fgetss、fgetcsv です。 fgetcsv 関数の機能は fgets の機能と同じで、ファイルの終わりまで一度に 1 行ずつファイルを読み取ります。ここでは、読み込むテキスト ファイルのデータ長を 100 に設定します。つまり、改行文字 \n またはファイルの終わり文字 EOF が見つかったときの最大読み取り長は 99 (100-1) になります。またはファイルからの読み取りが完了しました。99 バイトに達したらデータの読み取りを停止します。 fgets 関数は、ファイルから読み取られたデータを文字列型で返します。
fgetss 関数は、fgets 関数の変形で、PHP および HTML タグを削除し、3 番目のパラメータを渡すことで不要なデータをフィルタリングできます。たとえば、ゲストブックはユーザーの入力をフィルタリングできます。データの場合、fgetss 関数のプロトタイプは次のとおりです。
string fgetss(resource fp,int length, string[optional] allowed_tags)allowable_tags パラメーターはオプションです。例 I 事前に、leapsoulcn.txt ファイルに html、body、h1 タグを含むテキスト行を記述し、コード内で h1 タグのみが表示されるように設定しました。
fgetcsv 関数は、fgets の別の変形です。違いは、テキスト ファイルに書き込まれたデータに区切り文字が使用されている場合、fgetcsv を使用して 1 行を複数行に分解でき、返された結果が次の形式で保存されることです。配列の関数プロトタイプは次のとおりです。
array fgetcsv(resource fp,int length, string[optional] delimiter,string[optional] enclosure)delimiter is以前にファイルに書き込んだデータに \t を使用したため、この例では、ファイル読み取り関数 fgetcsv の区切り文字として \t を使用し、fgetcsv によって返された配列構造を print_r を通じて出力しました。
PHP の 3 つのファイル読み込み操作関数 fgets、fgetss、fgetcsv の共通点は、fopen 関数を使用して読み込んだファイルを事前にオープンし、同時に feof 関数を使用して読み込みファイルを決定する必要があることです。ファイル ポインタがファイルの末尾に達しているかどうかを確認してください。フェッチ操作が完了したら、fclose 関数を使用してファイルを閉じます。
fgetc: 単一文字の読み取り
fgetc 関数は、文字を 1 つずつ読み取り、\n 文字が見つかったときに変換されます。 br タグは、ブラウザで特定の行の折り返し効果を表示するために使用されます。もちろん、この機能の効率は比較的低いため、お勧めできません。3 つの関数の共通点は、ファイル全体を一度に読み取ることができることです。 、一度ではありません 行または文字を読みます。違いは次のとおりです。
readfile 関数はファイルを開き、ファイルの内容を返し、それをブラウザに直接出力します。fopen 関数と同様に、関数の戻り値はファイル内の 2 番目のパラメータの合計です。 readfile 関数はオプションで、PHP が include_path 内のファイルを検索するかどうかを示します。コード例では、echo ステートメントを使用して、読み取ったファイルの内容を出力するのではなく、読み取ったファイルの合計文字数を出力します。これは、readfile 関数によって自動的に出力されることを意味します。 readfile 関数のプロトタイプは次のとおりです。int readfile(string filename,int[optional] use_include_path)
file 関数は、ファイルを読み取るもう 1 つの方法であり、読み取ったファイルの内容を配列に送信します。 . 、行ごとに 1 つの配列セル。ファイル関数のプロトタイプは次のとおりです。
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 中国語 Web サイトの他の関連記事を参照してください。