ホームページ >バックエンド開発 >PHPチュートリアル >PHP ファイル操作: ファイルを 1 行ずつ読み取る

PHP ファイル操作: ファイルを 1 行ずつ読み取る

青灯夜游
青灯夜游オリジナル
2021-08-03 17:09:399333ブラウズ

前回の記事「php ファイル操作 - ファイルを 1 文字ずつ読み取る 」では、ファイルを 1 文字ずつ読み取るファイルの読み取り方法を紹介しました。この記事では、ファイルを一行ずつ読み込む別の方法として、ファイルの内容を一行ずつ読み取って出力する方法を紹介しますので、一緒に学びましょう。

「test.txt」という名前のテキスト ファイルがあり、その内容は次のとおりです。

PHP ファイル操作: ファイルを 1 行ずつ読み取る

ファイル行の内容を読み取るにはどうすればよいですか?ラインと出力?簡単ですが、今日は2つの方法を紹介します。

方法 1: fgets() 関数を使用する

コード例を見てみましょう:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$handle = fopen(&#39;./test.txt&#39;, &#39;r&#39;);                 //打开文件
if (!$handle) {                                     //判断文件是否打开成功
    echo &#39;文件打开失败!&#39;;
}
while (false !== ($char = fgets($handle,1024))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

出力結果:

PHP ファイル操作: ファイルを 1 行ずつ読み取る

主要な関数の分析:

fgets() 関数は、開いているファイルからデータ行を読み取るために使用され、必要なパラメータ $file (開かれているファイル) およびオプションのパラメータ $length (読み取るバイト数); $length パラメータが省略された場合、デフォルトでは、Take 1k (つまり 1024 バイト) の長さを読み取ります。

fgets() 関数は 改行文字 EOF (ファイルの最後まで読み取られます) を検出するか、指定された長さ $length-1## に達します# 停止します (返される文字列の最大長は $length-1 バイトです)。

ファイル内のデータ量がわからない場合は、

filesize() 関数を使用してデータを取得できます。これにより、指定されたファイルのサイズ (ファイルの数) が返されます。バイト)。

したがって、上記のコード例は次のように変更できます。

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$url = &#39;./test.txt&#39;;
$handle = fopen($url, &#39;r&#39;);                 //打开文件 
$size= filesize($url);                  //计算文件大小
if (!$handle) {                                     //判断文件是否打开成功
    echo &#39;文件打开失败!&#39;;
}
while (false !== ($char = fgets($handle,$size))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

出力結果は上記と同じです。


方法 2: fgetss() 関数を使用する

コード例を見てみましょう:

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$handle = fopen(&#39;./test.txt&#39;, &#39;r&#39;);                 //打开文件
if (!$handle) {                                     //判断文件是否打开成功
    echo &#39;文件打开失败!&#39;;
}
while (false !== ($char = fgetss($handle,1024))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

出力結果:

PHP ファイル操作: ファイルを 1 行ずつ読み取る

主要な関数の分析:

fgetss() 関数は fgets() 関数に似ており、どちらも開いているファイルからデータ行を読み取ることができます。違いは fgetss() です。この関数はデータから HTML タグと PHP タグをフィルターで除外します。

fgetss() 関数は、1 つの必須パラメータ

$file、2 つのオプション パラメータ $length および $tags を受け入れます。パラメータ $file と $length は fgets() 関数で導入されており、これらについては上記で詳しく学ぶことができます。パラメータ $tags は、削除しないタグを指定するために使用されます。例を通して詳しく見てみましょう:

PHP ファイル操作: ファイルを 1 行ずつ読み取る

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$handle = fopen(&#39;./test.txt&#39;, &#39;r&#39;);                 //打开文件
if (!$handle) {                                     //判断文件是否打开成功
    echo &#39;文件打开失败!&#39;;
}
while (false !== ($char = fgetss($handle,1024,"<h1>,<em>"))) {        //循环读取文件内容
    echo $char."<br>";
}
fclose($handle);                                    //关闭文件
?>

上記の例では、コードでは、パラメータ $tags の値を「

,」に設定します。つまり、

はフィルタリングしません。 タグなので、出力結果は次のようになります:

PHP ファイル操作: ファイルを 1 行ずつ読み取る

注: ファイルを操作した後は、必ず fclose() を使用してください。ファイルを閉じる関数です!

わかりました。これですべてです。他に知りたいことがある場合は、これをクリックしてください。 → →

PHP ファイルの基本操作

## おすすめ:

PHP 面接質問まとめ (集)》《php ビデオ チュートリアル

以上がPHP ファイル操作: ファイルを 1 行ずつ読み取るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。