问题描述
我试图让 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);
}
}