2014-01-07 42 views
0

PHP socket_write以字符串和長度作爲參數。我不知道我怎麼可以轉換一個4字節數組(xmlHeader)轉換爲字符串,因爲有些字節都是零,即:如何在PHP中socket_write一個4字節數組?

xmlHeader = unpack("C*", pack("L", 260)); 
print_r(xmlHeader); 

給出:

Array 
(
    [1] => 4 
    [2] => 1 
    [3] => 0 
    [4] => 0 
) 
+0

不是一個笨蛋,但你看過這個問題和答案?我假設你所指的4字節數組是BOM? http://stackoverflow.com/questions/1772321/what-is-xml-bom-and-how-do-i-detect-it – JakeGould

+1

@JakeGould這不是BOM。這是標題字節暗示即將到來的消息長度。 – ohho

回答

0

PHP支持二進制串:

$messageHead = pack("L", 260); 
socket_write($socket, $messageHead, strlen($messageHead)); 

對於4字節數組ar

$messageHead = pack("CCCC", $ar[1], $ar[2], $ar[3], $ar[4]); 
相關問題