要從的node.js轉換爲PHP格式:
buffer = require('buffer');
arr = [8,24,40,56,72,88,104,120,136,152,168,184,200,216,232,248];
console.log(arr.length);
buff = new Buffer(arr);
console.log(buff);
phpstreq = [];
phpinteq = [];
length = 4;
count = 0;
while (count < 16)
{
phpinteq.push(buff.readUInt32BE(count,true))
phpstreq.push(buff.slice(count,count+length));
count += length;
}
console.log(phpinteq);
console.log(phpstreq);
輸出爲上述
要從PHP轉換爲Node.js的格式:
<?php
$arr = [ 135800888, 1213753464, 2291706040, 3369658616 ];
$bytearray =[];
foreach ($arr as $byte4)
{
$eq = unpack("C*", pack("N", $byte4));
$bytearray = array_merge($bytearray,$eq);
}
print_r($bytearray);
?>
輸出
Array
(
[0] => 8
[1] => 24
[2] => 40
[3] => 56
[4] => 72
[5] => 88
[6] => 104
[7] => 120
[8] => 136
[9] => 152
[10] => 168
[11] => 184
[12] => 200
[13] => 216
[14] => 232
[15] => 248
)
我已經使用了上面的big endian格式。既然你模糊你的輸出,你將不得不自己檢查。還要注意驗證node.js中使用的輸入數組。在node.js中,數組中的整數x
必須是0 < x < 256
(記住每個數字= 1個字節)。
不錯,謝謝!多數民衆贊成在「u_k」完美的作品,但與「u_privk」我有一個問題。在PHP中,數組爲4,數組[0]的長度爲320,數組[1]的長度爲320,數組的長度爲628,數組[3]的長度爲318,NODE.JS返回一個多維的數組大小4什麼在數組[0]大小37,數組[1]大小37,數組[2]大小74,數組[3]大小37.想法? – Bayer
@Bayer對於您所展示的示例,轉換很明顯。兩種情況下的尺寸都相同。你可以在一個例子中展示這個(如果你想要隱藏必要的細節)。我以前沒見過這個。 – user568109
你可以在這裏查看數組:http://pastebin.com/28eSdVGC我需要顯示nodejs數組爲php._,感謝您的幫助 – Bayer