Как писать бинарно в файл на php
Всем привет! Подскажите пожалуйста, как писать бинарно в файл. Есть строка, она двоичная, но по сути это просто строка: 010101
Вот нужно взять каждый байт и записать его как бит в файл. То есть, берем 0, как бы превращаем в бит и пишем в файл. Стандартная fopen (..., wb) не работает, баг php. |
wadim2,
fopen не так работает. Берёшь первые 8 символов, преобразуешь в int с помощью intval, затем это значение преобразуешь в символ и записываешь в файл: php -r '$fp=fopen("h.txt", "wb"); $c=intval("01101000", 2); fwrite($fp, chr($c));' |
Не работает. Вы файл получаемый смотрели, когда запускали код? Это просто текстовый файл получается, а нужно чтоб он был бинарным.
|
wadim2,
он бинарный, состоит из битов "01101000", что соответствует ASCII коду символа "h". Или как, по вашему, должен выглядеть бинарный файл? Вы менять значения битов в строке пробовали? Например на все нули? |
У меня он текстовый и содержит явно символ "h", как если бы я руками записал в файл сивмол "h". Не имеет смысла менять на нули. Вы сами запускали Ваш код? Даже в интернете пишут что php не пишет бинарно, вот эта строка fopen("h.txt", "wb") в php не работает, из-за внутреннего бага php в реализации этой функции. У меня php 7.4
|
wadim2,
прочитайте уже документацию на fopen в php, и для чего там предназначен флаг "b"... |
Я читал. В моей теме явно написано: fopen (..., wb)
|
Часовой пояс GMT +3, время: 16:45. |