Скажем, я прочитал несколько байтов, таких как:
$data = fread($fp, 4096);
Поскольку fread
прекратит чтение, если оно достигнет конца файла, как я могу точно знать, сколько было прочитано? Будет ли strlen($data)
работать? Или это может быть неправильно?
То, что я пытаюсь сделать, это прочитать несколько байтов, а затем вернуться туда, где я был до того, как прочитал. И я стараюсь избегать использования арифметики (ftell
, fread
, ftell
, вычитание, fseek
), поскольку файл потенциально может быть больше, чем PHP_INT_MAX
, и может привести к путанице. Я хотел бы просто сделать fseek($fp, -$bytes_read, SEEK_CUR)
, но для этого мне нужно знать, сколько байтов я только что прочитал ...