文件大小每次返回0,文件内容不显示,即使文件存在数据

时间:2017-11-11 18:39:15

标签: php filesystems

大家晚上好!

我的文件系统有问题。当我尝试打开现有文件时,文件大小每次为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()方法编辑文件之后,文件被读取了。现在的问题是:为什么?

2 个答案:

答案 0 :(得分:0)

似乎this answer就像您正在寻找的那样。由于您的文件包含的数据非常少,因此难以获得准确的读数。链接问题的答案解释了一些解决方法。

答案 1 :(得分:0)

我发现了问题。在代码的顶部有一个代码片段,其中包含今天早些时候(凌晨4点)的测试代码,我忘了今天早上删除它。现在代码完全正常。