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") または die("システム エラー ");
$allowable_tags = "
";
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
echo $output;
}
fclose($fp);
break;
@$fp = fopen("leapsoulcn.txt")または die ("システム エラー");
while (!feof($fp)) {
$output = fgetcsv($fp,100,"t"); 🎜> }
fclose($fp);
break;
case "readfile":
echo readfile("leapsoulcn.txt"); :
@$fp = fopen("leapsoulcn.txt","r") または die("システム エラー");
if(!fpassthru($fp))
exit(); >fclose ($fp);
case "ファイル":
print_r($output); 🎜> case "fgetc":
@$fp = fopen("leapsoulcn.txt","r") または die("システムエラー");
while (!feof($fp)) {
$ str = fgetc($fp);
echo ($str == "n"?"
":$str);
}
fclose($fp); 🎜> ブレーク;
case "fread":
@$fp = fopen("leapsoulcn.txt","r") または die("システム エラー"); );
fclose($fp);
デフォルト:
@$fp = fopen("leapsoulcn.txt","r") または die("システムエラー"); 🎜> while (!feof($fp)) {
$output = fgets($fp,100);
echo $output;
fclose($fp); ;
}
?>
注: 上記の例では、PHP ファイル読み取り操作を伴う、$readFun に値を割り当てることで、さまざまな PHP ファイル読み取りメソッドを呼び出すことができます。 fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc およびその他の関数が含まれます。
PHP ファイル読み込み操作関数 fgets、fgetss、fgetcsv の違い
コード例では、デフォルトの PHP ファイル読み込み操作関数は fgets となっています。 fgetss 関数、fgetcsv 関数の機能は fgets と同じです。ファイルの終わりまでの行をすべて一度に読み取ります。ここでは、テキスト ファイルで読み込むデータ長を 100 に設定します。つまり、最大読み出し長は 99 (100-1) になります。このように、改行文字 n またはファイルの終わり文字 EOF に遭遇すると、次のようになります。または 99 がファイルから読み取られます。バイトに達したらデータの読み取りを停止します。 fgets 関数は、ファイルから読み取られたデータを文字列型で返します。
fgetss 関数は fgets 関数の変形であり、PHP および HTML タグを削除し、3 番目のパラメーターを渡すことで不要なデータをフィルタリングできます。これにより、たとえば、ユーザー入力データをゲストブックでフィルタリングできます。 fgetss 関数のプロトタイプは次のとおりです。
コードをコピー
コードは次のとおりです。
string fgetss(resource fp,int length, string[optional] allowed_tags)
allowable_tags パラメーターはオプションです。この例では、事前に html、body、および h1 タグを含むテキスト行を Leapsoulcn.txt ファイルに記述しました。そして、コードでは h1 タグのみが表示できるように設定しました。 fgetcsv 関数は fgets の別の変形であり、テキスト ファイルに書き込まれたデータに区切り文字が使用されている場合、fgetcsv を使用して 1 行を複数行に分割し、返された結果を配列に格納できる点が異なります。関数のプロトタイプは次のとおりです。
コードのコピー
コードは次のとおりです。 array fgetcsv(resource fp, int length,文字列[オプション] 区切り文字、文字列[オプション] 囲み)
区切り文字はオプションです。先ほどファイルに書き込むデータに t を使用したため、この例ではファイル読み取り関数 fgetcsv の区切り文字として t を使用し、fgetcsv が返した値を print_r を通じて出力しました。構造。
PHP の 3 つのファイル読み込み操作関数 fgets、fgetss、fgetcsv の共通点は、fopen 関数を使用して読み込んだファイルを事前にオープンし、同時に feof 関数を使用してファイルが読み込まれているかどうかを判断する必要があることです。ポインタがファイルの末尾に達しました。必ず読み取り操作を完了してください。その後、fclose 関数を使用してファイルを閉じます。
fgetc: 単一文字の読み取り
コード例では、文字を 1 つずつ読み取るために fgetc 関数が使用され、n 個の文字が見つかった場合、それらは br タグに変換されます。 html ファイルを使用して特定の行折り返し効果をブラウザに表示するには、この機能の効率は明らかに低いため、使用することはお勧めできません。
PHP ファイル読み取り操作関数 readfile、fpassthru、file の違い
3 つの関数の共通点は、一度に 1 行または 1 文字を読み取るのではなく、ファイル全体を一度に読み取ることができることです。 。違いは次のとおりです。
readfile 関数はファイルを開き、ファイルの内容を返し、それをブラウザに直接出力します。 fopen 関数と同様に、関数の戻り値はファイルの 2 番目のパラメータの合計です。 readfile 関数はオプションで、PHP が include_path 内のファイルを検索するかどうかを示します。コード例では、echo ステートメントを使用して、読み取ったファイルの内容を出力するのではなく、読み取ったファイルの合計文字数を出力します。これは、readfile 関数によって自動的に出力されることを意味します。 readfile 関数のプロトタイプは次のとおりです。
コードをコピー コードは次のとおりです。
int readfile(string filename,int) [オプション] use_include_path)
file 関数は、ファイルを読み取るもう 1 つの方法で、読み取ったファイルの内容を 1 行に 1 つの配列単位で送信します。ファイル関数のプロトタイプは次のとおりです。
コピー コード コードは次のとおりです。
array file(string filename,bool[optional] use_include_path)
fpassthru() 関数は、ファイル ポインターにある残りのデータをすべて出力するために使用されます。つまり、ファイル ポインターが先頭にない場合は、ファイル ポインターの後のデータのみを出力します。この関数は、指定されたファイル ポインターを現在位置から EOF まで読み取り、結果を出力バッファーに書き込みます。戻り値は出力された文字数です。エラーが発生した場合は FALSE が返されます。 readfile() 関数と比較して、 fpassthru() 関数は最初にファイルを開き、データを読み取った後にファイルを閉じる必要があります。
fread, file_exists, filesize function
fread 関数も、ファイルの長さに合わせて、またはファイルの終わりまで、ファイルから任意のバイトを読み取ることができます。読み取り関数のプロトタイプは次のとおりです。
コピー コード コードは次のとおりです。
string fread(resource fp,int length)
fread 関数を使用する場合、ファイル内のすべてのデータを読み取りたいが、ファイルのデータ長がわからない場合、filesize 関数を使用するとこの問題を解決できます。つまり、
コードをコピー コードは次のとおりです:
<
@$fp = fopen("leapsoulcn.txt","r") またはdie("システムエラー");
echo fread($fp,filesize("leapsoulcn.txt"));
?> >PHP ファイルの読み取りと書き込みチュートリアルの file_exists 関数では、通常は PHP Web サイト開発で、さまざまな考慮事項からこの関数を使用していません。ファイルが存在しない場合、新しいファイルを作成したくない場合があります。その場合は、使用する必要があります。 fopen 関数を使用する前にファイルが存在するかどうかを判断する file_exists 関数、つまり
コードをコピー
コードは次のとおりです:
if(file_exists("leapsoulcn.txt"))
{
//PHP ファイルの読み取りおよび書き込み操作を実行します
}
上記は、PHP ファイルの読み取りおよび書き込み操作チュートリアルのファイル読み取り操作のさまざまな方法です。はじめに、PHP ファイルの読み取りおよび書き込み操作関数を合理的に適用することで、簡単なゲストブック、Web サイトのログ記録などの機能を実現できます。 。