首頁 > 後端開發 > php教程 > 如何將 PHP 字串轉換為位元組數組?

如何將 PHP 字串轉換為位元組數組?

Mary-Kate Olsen
發布: 2024-11-27 18:39:11
原創
226 人瀏覽過

How Can I Convert a PHP String to a Byte Array?

在PHP 中將字串轉換為位元組數組

在PHP 中,有多種方法可以將包含字元和數字的字串轉換為位元組數組。與Java 的getBytes() 方法類似,這裡有一些實作此轉換的方法:

使用ord() 函數

使用以下指令循環遍歷字串中的每個字元strlen()。對於每個字符,使用 ord() 函數取得其 ASCII 整數值。將這些值儲存在數組或位元組數組中。

for ($i = 0; $i < strlen($msg); $i++) {
    $data[] = ord($msg[$i]); // Store in an array
    // or
    $byte_array .= ord($msg[$i]); // Concatenate in a byte array
}
登入後複製

使用unpack() 函數

PHP 的unpack() 函數提供了一種簡潔的方法來轉換字串轉換為整數值的結構化數組。它允許您將字串中的字元提取並重新解釋為單獨的位元組。

$byte_array = unpack('C*', 'The quick fox jumped over the lazy brown dog');
var_dump($byte_array);
登入後複製

請注意,$byte_array 陣列中的值是表示每個字元的 ASCII 代碼的整數,範圍從 0 到 255。

考慮到提供的原始程式碼片段,您似乎試圖將字元轉換為十六進位值而不是整數值。為此,您可以在取得字元的ASCII 程式碼後使用bin2hex() 函數:

for ($i = 0; $i < strlen($msg); $i++) {
    $data .= bin2hex(chr(ord($msg[$i]))); // Convert to hex and concatenate
}
登入後複製

附加說明

  • unpack() 函數建立一個功能從 1開始的索引數組,其中第一個元素透過以下方式存取$byte_array[1].
  • 輸出位元組數組可以很容易地轉換為C# 中的byte[],因為值在0-255 範圍內。
  • 確保目標伺服器在Java 需要一個位元組數組,而不是字串。

以上是如何將 PHP 字串轉換為位元組數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板