Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将byteArray转换为字符串?_Php_String_Websocket_Bytearray - Fatal编程技术网

如何在PHP中将byteArray转换为字符串?

如何在PHP中将byteArray转换为字符串?,php,string,websocket,bytearray,Php,String,Websocket,Bytearray,我有一个WebSocket编码器: print_r(frameEncode("How can I convert a byteArray to String in PHP?")); function frameEncode($message) { $messageBytes = array(); $messageLength = strlen($message); $messageBytes[0] = 129; if

我有一个
WebSocket
编码器:

print_r(frameEncode("How can I convert a byteArray to String in PHP?"));

    function frameEncode($message) {
        $messageBytes = array();
        $messageLength = strlen($message);

        $messageBytes[0] = 129;

        if ($messageLength < 126) {
            $messageBytes[1] = $messageLength;
        } else if ($messageLength <= 65535) {
            $messageBytes[1] = 126;
            $messageBytes[2] = ($messageLength >> 8) & 255;
            $messageBytes[3] = $messageLength & 255;
        } else {
            $messageBytes[1] = 127;
            $messageBytes[2] = ($messageLength >> 56) & 255;
            $messageBytes[3] = ($messageLength >> 48) & 255;
            $messageBytes[4] = ($messageLength >> 40) & 255;
            $messageBytes[5] = ($messageLength >> 32) & 255;
            $messageBytes[6] = ($messageLength >> 24) & 255;
            $messageBytes[7] = ($messageLength >> 16) & 255;
            $messageBytes[8] = ($messageLength >> 8) & 255;
            $messageBytes[9] = $messageLength & 255;
        }

        return pack("C*", $messageBytes) . $message;
    }
print\r(frameEncode(“在PHP中如何将字节数组转换为字符串?”);
函数frameEncode($message){
$messageBytes=array();
$messageLength=strlen($message);
$messageBytes[0]=129;
如果($messageLength<126){
$messageBytes[1]=$messageLength;
}如果($messageLength>8)&255;
$messageBytes[3]=$messageLength&255;
}否则{
$messageBytes[1]=127;
$messageBytes[2]=($messageLength>>56)和255;
$messageBytes[3]=($messageLength>>48)&255;
$messageBytes[4]=($messageLength>>40)&255;
$messageBytes[5]=($messageLength>>32)&255;
$messageBytes[6]=($messageLength>>24)和255;
$messageBytes[7]=($messageLength>>16)和255;
$messageBytes[8]=($messageLength>>8)&255;
$messageBytes[9]=$messageLength&255;
}
返回包(“C*”,$messageBytes)$消息
}
如何将函数末尾的
$messageBytes
转换为字符串?数组值被
pack()
忽略,您可以这样使用:

call_user_func_array('pack', array_merge(array('C*'), $messageBytes)))
return pack("C*", implode(' ', $messageBytes)) . $message;