Ответ 1
Если по массиву байтов вы имеете в виду:
$bytes = array(255, 0, 55, 42, 17, );
array_map()
Тогда это так же просто, как:
$string = implode(array_map("chr", $bytes));
Еогеасп()
Какова компактная версия:
$string = "";
foreach ($bytes as $chr) {
$string .= chr($chr);
}
// Might be a bit speedier due to not constructing a temporary array.
упаковка()
Но наиболее целесообразной альтернативой может быть использование pack("C*", [$array...])
, хотя для передачи целочисленного списка требуется PHP-метод обхода проблемы:
$str = call_user_func_array("pack", array_merge(array("C*"), $bytes)));
Эта конструкция также более полезна, если вам может потребоваться переключиться с байтов C * (для строк ASCII) на слова S * (для UCS2) или даже иметь список из 32-битных целых чисел L * (например, строка Unicode UCS4).