我有一个字节数组,我想映射到它们的ASCII等价物.
我该怎么做?
如果按字节数组表示:
$bytes = array(255,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字符串)的列表,那么该结构也将更有用.