Если вы делаете extract(unpack('a*demo', "a\0\0\0")); echo strlen($demo);
Вы не получите 4 назад — вы получите 1 назад. Это потому что a
за http://php.net/pack, является «NUL-дополненной строкой», поэтому удаляются завершающие байты NUL.
Мой вопрос … есть ли способ сделать так, чтобы они не были удалены?
я мог бы сделать A*demo
вместо a*demo
и тогда нулевые байты не будут удалены, но конечные пробелы будут.
Задача ещё не решена.
Других решений пока нет …