首頁 >後端開發 >php教程 >如何在 PHP 中將字串轉換為二進位並傳回?

如何在 PHP 中將字串轉換為二進位並傳回?

DDD
DDD原創
2024-11-04 03:52:30709瀏覽

How to Convert Strings to Binary and Back in PHP?

在 PHP 中轉換二進位和字串:綜合指南

在 PHP 中處理資料時,通常需要在不同格式之間進行轉換。一種常見的轉換是字串和二進位之間的轉換。無論是為了安全地儲存資料還是優化效能,了解如何在這些格式之間進行轉換至關重要。

問題:

如何將字串轉換為二進制,然後將其轉換回字串在標準 PHP 庫中?這是安全資料儲存和操作的常見需求。

解決方案:

與某些程式語言不同,PHP 沒有內建函數來直接將字串轉換為二進位。然而, pack() 和 base_convert() 函數的組合可以實現此功能。

二進位到字串:

要將二進位字串轉換回其原始字串,我們可以使用 pack () 和 base_convert()。 pack() 函數採用格式字串和二進位資料字串,並將它們組合起來建立一個字串。在我們的例子中,格式字串是“H*”,它表示十六進位字串。 base_convert() 函數將字串從一種基數轉換為另一種基數。在這種情況下,我們將十六進位字串轉換為ASCII 字元集:

<code class="php">// Convert binary into a string
$string = pack('H*', base_convert('0101001101110100011000010110001101101011', 2, 16));</code>

字串到二進位:

要將字串轉換為二進位,我們可以使用unpack() 和base_convert( )。 unpack() 函數接受一個格式字串和一個字串,並根據指定的格式從字串中提取資料。在我們的例子中,我們指定格式「H*」來提取十六進位資料。 base_convert() 函數將字串從一種基數轉換為另一種基數。在這裡,我們將ASCII 字串轉換為十六進位字串,它表示二進位表示:

<code class="php">// Convert a string into binary
$binary = unpack('H*', 'Stack');
echo base_convert($binary[1], 16, 2);</code>

範例:

讓我們用一個範例將它們放在一起:

<code class="php">// Convert "Stack" to binary
$binary = unpack('H*', 'Stack');
$binaryString = base_convert($binary[1], 16, 2);
echo "Binary: $binaryString\n";

// Convert binary back to "Stack"
$asciiString = pack('H*', base_convert($binaryString, 2, 16));
echo "String: $asciiString\n";</code>

輸出:

Binary: 0101001101110100011000010110001101101011
String: Stack

利用這些函數,我們可以在PHP中有效地在字串和二進制之間進行轉換。這些知識對於資料加密、文件操作和各種其他任務非常寶貴。

以上是如何在 PHP 中將字串轉換為二進位並傳回?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn