fread と fgets はどう使い分ければいいでしょうか?

それぞれの違いを説明していきます。
2021年4月25日
ユーザー

fread と fgets は具体的にどう違うのでしょうか?

内容を読み込む関数がいくつかある中で、あえてサイズを指定して読み込む fread を使う理由がわかりませんでした。

例えば、

$NamesSize = filesize ('names.txt');
echo $NamesSize;

としたら29が返されました。
そこで、以下のようにfreadの第二引数を20にしてみました。

$fp = fopen('names.txt', 'r');
$contents = fread($fp,20);
fclose($fp);
echo $contents;

返された内容は

taro
jiro
saburo
jir

20 バイト分を表示しているのだと思いますが、このような結果を返す必要性を感じませんし、ただファイルの全部を読み込むだけであれば、何のためにファイルサイズを取得するのかな、と疑問に思いました。

両者を使い分ける方法について教えていただきたいです!

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(7)