filesize () возвращает 0 при попытке fread () файла json - PullRequest
0 голосов
/ 29 февраля 2020

Подробная информация о моей цели:

Я хотел объединить новые данные, полученные из моего мобильного приложения, с данными, которые хранятся в файле Json, и использовать эти данные для обработки пользовательских данных, но Любые данные размером более 1 КБ запускают ошибку.

Коды ошибок: PHP Warning: fread(): Length parameter must be greater than 0

Я убедился, что размер файла не равен 0, его 4,89 КБ!

Код:

        $RawFile = fopen($FileName, "w+") or die("Unable to open file!");
         $IsiFile = fread($RawFile,filesize($FileName));
          $DataFile = json_decode($IsiFile, true);
           $DataPengguna = $DataFile[$UserID];
           $DataOverwrite = $DataPengguna . '' . $tulisan;
          $DataFile[$UserID] = $DataOverwrite;
         fwrite($RawFile, json_encode($DataFile));
        fclose($RawFile);

Содержимое Json файла: Prnt.sc / r9hek8

Среднее значение переменной в моем коде:

$ IsiFile = Json

$ DataFile = Я предпочитаю массив для доступа к данным

$ DataPengguna = Данные пользователя [Каждый пользователь имеет свой собственный ID пользователя]

$ DataOverwrite = Объединить старые уже сохраненные данные с новыми данными

Поместить их обратно в массив и выполнить fwrite (), затем закрыть файл

1 Ответ

0 голосов
/ 29 февраля 2020

Это место логической ошибки: fopen($FileName, "w+")
Режим "w +" всегда удаляет содержимое файла. Просто используйте режим «r +» и, если вам понадобится запись в файл позже, снова откройте его в режиме «w +».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...