Errno = 9 неверный файловый дескриптор в php - PullRequest
1 голос
/ 03 мая 2020

Я пытаюсь записать файл в php со следующим кодом

    $filename = "uploads/stories/".$row['s_source'];
    $handle = fopen($filename, "r");
    if (filesize($filename) == 0) {
      $txt = "{====views====}{====likes====}{====chapters====}{====comments====}";
      fwrite($handle, $txt);
    }
    $content = fread($handle, filesize($filename));
    fclose($handle);

И я получаю:

Примечание: fwrite (): ошибка записи 66 байт с errno = 9 Неверный дескриптор файла в E: \ xampp \ htdocs \ host \ host \ storyedit. php в строке 20

Предупреждение: fread (): параметр длины должен быть больше 0 в E: \ xampp \ htdocs \ host \ host \ storyedit. php в строке 22 * ​​1009 *

Примечание: неопределенное смещение: 1 в E: \ xampp \ htdocs \ host \ host \ storyedit. php в строке 27

Но в коде нет ошибки (я думаю). Может ли кто-нибудь помочь мне?

Я пытался:

  1. Удаление opcache.enable_cli = 1 в php .ini
  2. Удаление кэша

никто не работал.

1 Ответ

0 голосов
/ 03 мая 2020

Вы открываете с доступом для чтения, а затем даете команду записи> Вам нужно открыть с доступом для чтения / записи

$handle = fopen($filename, "r+");

В отношении ошибки в fread, попробуйте

if (filesize($filename) > 0) {
$content = fread($handle, filesize($filename));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...