pack()
是 PHP 中的一個內置函數,用于將數據轉換為二進制字符串。pack()
函數接受兩個參數:
- format(格式):一個字符串,用于指定如何將數據轉換為二進制字符串。格式字符串由一系列的格式代碼組成,每個格式代碼都描述了一個輸入值的處理方式。格式代碼可以包括填充、簽名、字節順序等信息。
常見的格式代碼有:
- a:NUL-padded string
- A:SPACE-padded string
- h:Hex string, low nibble first
- H:Hex string, high nibble first
- c:signed char
- C:unsigned char
- s:signed short (always 16 bit, machine byte order)
- S:unsigned short (always 16 bit, machine byte order)
- n:unsigned short (always 16 bit, big endian byte order)
- v:unsigned short (always 16 bit, little endian byte order)
- i:signed integer (machine dependent size and byte order)
- I:unsigned integer (machine dependent size and byte order)
- l:signed long (always 32 bit, machine byte order)
- L:unsigned long (always 32 bit, machine byte order)
- N:unsigned long (always 32 bit, big endian byte order)
- V:unsigned long (always 32 bit, little endian byte order)
- f:float (machine dependent size and representation)
- d:double (machine dependent size and representation)
- x:NUL byte
- X:Back up one byte
- @:NUL-fill to absolute position
- values(值):一個或多個要轉換為二進制字符串的值。這些值可以是整數、浮點數或字符串。
示例:
$format = "A3a3";
$values = ["ABC", "xyz"];
$binary_string = pack($format, ...$values);
echo $binary_string;
注意:pack()
函數不會對輸入值進行類型檢查,因此請確保提供正確的值類型。錯誤的值類型可能導致不可預測的結果。