fgets() 和 fread() - 有什么区别?

2022-08-30 13:07:50

我理解fgets()fgetss()之间的区别,但我不明白fgts()fread()之间的区别,有人可以澄清这个主题吗?哪一个更快?谢谢!


答案 1

fgets读取一行 - 即它将停在换行符处。

fread 读取原始数据 - 它将在指定(或默认)字节数后停止,独立于可能存在或可能不存在的任何换行符。


速度不是使用一个而不是另一个的理由,因为这两个函数只是不做同样的事情:

  • 如果要从文本文件中读取一行,请使用 fgets
  • 如果要从文件中读取一些数据(不一定是一行),请使用 fread

答案 2

二进制数据的 fread() 和 fread 对您可以读取的字符数有限制

$source_file = fopen( $filename, "r" ) or die("Couldn't open $filename");
while (!feof($source_file)) {
    $buffer = fread($source_file, 5);  
   var_dump($buffer); //return string with length 5 chars!
}

数字 5 是已读取的长度字节。


推荐