@antobra

PHP pack L выдает символы с переносом строки, как убрать?

Здравствуйте

Для некоторых задач необходимо сжимать числа и добавлять их в конец файла, в котором все данные одной строки (никаких переносов на новую строку) для того, чтобы при работе с fgets не возникало сложностей (как известно, он выдает данные до конца строки или файла, даже если length больше). И при некоторых числах, например,

var_dump ( pack ( 'L', 2707 ) );

Результат:
5d5693eddbea4668649999.png

возникает перенос строки, который совсем не нужен. Как можно решить вопрос, кроме повторного fgets пока не получу необходимое количество байт.

Можно, конечно, избавиться от упаковки через pack, но он экономит место и удобно вырезать конкретно 4 символа. Или, возможно, есть другой код формата pack, который подойдет мне и без переносов строк?

Благодарю
  • Вопрос задан
  • 537 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Никак не избавиться.
270710 = 00000A9316
Соответственно, записываются четыре байта 0x93, 0x0A, 0x00, 0x00.
Но 0x0A - это код переноса строки (CR).
Ну и читать бинарный файл в текстовом режиме - не лучшая идея.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы