在 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中文網其他相關文章!