微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP fread() 其他长度参数而不是文件大小

如何解决PHP fread() 其他长度参数而不是文件大小


我试图让 PHP 读取一个文件到最后,它工作得很好,除非文件为空。然后它抛出一个错误说:
 Uncaught ValueError: fread(): Argument #2 ($length) must be greater than 0`
`strlen()`does not work in this case.

是否有一些关于长度的论据,例如“阅读那里的所有内容,如果它为空,则忽略它”?这是PHP

$data_file_read = fopen("data.txt","r");
$alldata = fread($data_file_read,filesize("data.txt"));
fclose($data_file_read);

解决方法

将文件的长度放入一个变量中并检查它的长度

$filename = "data.txt";
//
// Check file exists first
//
if (file_exists($filename) === true) {
   //
   // Get file length and check if it is > 0
   //
   $dataLength = filesize($filename);

   if ($dataLength > 0) {
      //
      // Finally read the data
      //
      $data_file_read = fopen($filename,"r");
      $alldata = fread($data_file_read,$dataLength);
      fclose($data_file_read);
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。