如果按字节数组表示:
$bytes = array(255, 0, 55, 42, 17, );
array_map()
那么就像:
$string = implode(array_map("chr", $bytes));
的foreach()
哪个是紧凑型的:
$string = "";
foreach ($bytes as $chr) {
$string .= chr($chr);
}
// Might be a bit speedier due to not constructing a temporary array.
包()
但最好的替代方案可能是使用pack(“C *”,[$array …]),即使它需要一个简单的数组解决方法来传递整数列表:
$str = call_user_func_array("pack", array_merge(array("C*"), $bytes)));
如果您可能需要从字节C *(对于ASCII字符串)切换到字符S *(对于UCS2)或甚至具有32位整数L *(例如UCS4 Unicode字符串)的列表,那么该结构也将更有用.