文件大小 returns 每次 0 并且文件内容不显示,即使文件存在数据

file size returns every time 0 and file contents not displayed, even if file exists with data

大家晚上好!

我的文件系统有问题。当我尝试打开现有文件时,文件大小每次都是 0,而当我尝试读取数据(以不同方式)时,它只有 returns“”。我在网上没有找到任何解决方案,所以我在这里问一下。

这是我的代码:

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() 方法编辑文件后,文件被读取了。现在的问题是:为什么?

您要找的似乎是 this answer。由于您的文件包含的数据非常少,因此很难获得准确的读数。链接问题的答案解释了一些解决方法。

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