PHP ファイル読み取り操作には、ファイル書き込み操作よりも多くの PHP ファイル操作関数が含まれます。これらの関数はコード例で詳しく紹介されます。
テキスト ファイルに保存されたデータの読み取りと一部のファイル操作関数に含まれる主な 3 つの手順は次のとおりです。
1. ファイルを開きます(ファイル操作関数:fopen)
2. ファイルデータの読み込み(ファイル操作関数:fgets、file、readfile、feofなど)
3. ファイルを閉じる(ファイル操作関数:fclose)
PHPファイル読み込みオペレーションコード例
リーリー
注: 上記の例では、$readFun に値を割り当てることで、さまざまな PHP ファイル読み取りメソッドを呼び出すことができます。関連する PHP ファイル読み取り操作関数には、fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc およびその他の関数が含まれます。
PHPファイル読み込み操作関数fgets、fgetss、fgetcsvの違い
コード例では、デフォルトの PHP ファイル読み込み操作関数は fgets です。 fgetss 関数と fgetcsv 関数の機能は fgets と同じで、どちらもファイルを 1 行ずつファイルの最後まで読み込みます。ここでは、読み込むテキスト ファイルのデータ長を 100 に設定します。つまり、最大読み出し長は 99 (100-1) になります。このように、改行文字 n またはファイルの終わり文字 EOF に遭遇すると、次のようになります。または 99 がファイルから読み取られます。バイトに達したらデータの読み取りを停止します。 fgets 関数は、ファイルから読み取られたデータを文字列型で返します。fgetss 関数は、PHP および HTML タグを削除し、3 番目のパラメーターを渡すことで不要なデータをフィルタリングできます。これにより、たとえば、ユーザーの入力データをゲストブックでフィルタリングできます。 fgetss 関数のプロトタイプは以下の通りです:
string fgetss(resource fp,int length, string[optional] allowed_tags)
allowable_tags パラメーターはオプションです。この例では、html、body、および h1 タグを含むテキスト行を、leapsoulcn.txt ファイルに事前に記述し、コード内で h1 タグのみが表示されるように設定しました。
配列 fgetcsv(リソース fp,int 長さ,文字列[オプション]区切り文字,文字列[オプション]エンクロージャ)
delimiter はオプションです。以前にファイルに書き込むデータに t を使用したため、この例では、ファイル読み取り関数 fgetcsv で t を区切り文字として使用し、 fgetcsv によって返された配列構造を print_r を通じて出力しました。
コード例では、文字を 1 つずつ読み取るために fgetc 関数を使用しています。n 個の文字が見つかった場合、それらの文字は HTML ファイル内の br タグに変換され、特定の改行効果が表示されます。もちろん、この機能の効率は比較的低いため、使用はお勧めできません。
PHPファイル読み込み操作関数readfile、fpassthru、fileの違い
readfile 関数はファイルを開き、ファイルの内容を返し、それをブラウザに直接出力します。 fopen 関数と同様に、関数の戻り値はファイル内の合計文字数であり、readfile 関数の 2 番目のパラメータはオプションです。 PHP は include_path でファイルを検索する必要があります。コード例では、echo ステートメントを使用して、読み取ったファイルの内容を出力するのではなく、読み取ったファイルの合計文字数を出力します。これは、readfile 関数によって自動的に出力されることを意味します。 readfile 関数のプロトタイプは次のとおりです:
int readfile(文字列ファイル名,int[オプション] use_include_path)
配列ファイル(文字列ファイル名、ブール[オプション] use_include_path)
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文件读写操作函数,可以实现简单的留言本、网站log记录等功能。