大家晚上好!
我的文件系统有问题。当我尝试打开现有文件时,文件大小每次为0,当我尝试读取数据时(以不同方式),它只返回""。我没有在网上找到任何解决方案,所以我在这里问。
这是我的代码:
function getOldDate($id) {
$file = fopen($id.".txt", "r+");
if ($file) {
$fileURL = $id.'.txt';
echo "fread:".fread($file,filesize($fileURL));
echo "ID:".$fileURL;
echo "file_get_contents:".file_get_contents($fileURL)." ;";
echo "Lines:".fgets($file)." ;";
print_r($id.":".file_get_contents($fileURL));
return date("d.m.Y, h:i", strtotime(file_get_contents($fileURL)));
}
fclose($file);
}
我使用以下代码编写数据:
function saveNewDate($id, $newdate) {
$file = fopen($id.".txt", "w");
if ($file) {
fclose($file);
unlink($id.".txt");
}
$fileN = fopen($id.".txt", "w");
fwrite($fileN, $newdate);
fclose($fileN);
}
返回的网站如下所示:
Warning: fread(): Length parameter must be greater than 0 in /storage/ssd2/016/3537016/public_html/run.php on line 83
fread:ID:VPuem.txtfile_get_contents: ;Lines: ;VPuem:Savedate:01.01.1970, 01:00 ModDate:10.11.2017, 09:43
Warning: fread(): Length parameter must be greater than 0 in /storage/ssd2/016/3537016/public_html/run.php on line 83
fread:ID:K11_1.txtfile_get_contents: ;Lines: ;K11_1:Savedate:01.01.1970, 01:00 ModDate:20.10.2017, 05:05
Warning: fread(): Length parameter must be greater than 0 in /storage/ssd2/016/3537016/public_html/run.php on line 83
fread:ID:K12_1.txtfile_get_contents: ;Lines: ;K12_1:Savedate:01.01.1970, 01:00 ModDate:20.09.2017, 06:19
VPuem.txt文件的内容:
20.10.2017,05:05
其他文件的内容相同,只有日期(数字)不同。
哦,文件与PHP文件在同一个目录中。
希望有人可以提供帮助。我现在坐了4个小时......
修改: 我发现,在使用saveNewDate()方法编辑文件之后,文件被读取了。现在的问题是:为什么?
答案 0 :(得分:0)
似乎this answer就像您正在寻找的那样。由于您的文件包含的数据非常少,因此难以获得准确的读数。链接问题的答案解释了一些解决方法。
答案 1 :(得分:0)
我发现了问题。在代码的顶部有一个代码片段,其中包含今天早些时候(凌晨4点)的测试代码,我忘了今天早上删除它。现在代码完全正常。