PHP 日本研討會 2024

bin2hex

(PHP 4, PHP 5, PHP 7, PHP 8)

bin2hex將二進位資料轉換為十六進位表示法

描述

bin2hex(字串 $string): 字串

傳回一個 ASCII 字串,其中包含 string 的十六進位表示法。轉換以位元組方式進行,高位元組優先。

參數

string

一個字串。

傳回值

傳回給定字串的十六進位表示法。

範例

範例 #1 bin2hex() 範例

<?php

$hex
= bin2hex('Hello world!');

var_dump($hex);
var_dump(hex2bin($hex));
?>

以上範例會輸出

string(24) "48656c6c6f20776f726c6421"
string(12) "Hello world!"

參見

  • hex2bin() - 解碼十六進位編碼的二進位字串
  • pack() - 將資料打包成二進位字串

新增註解

使用者提供的註解 6 則註解

59
tehjosh at gamingg dot net
17 年前
此函式用於將二進位資料轉換為十六進位字串表示法。此函式不適用於將表示二進位數字的字串轉換為十六進位。如果您想要該功能,您可以簡單地執行此操作

<?php
$binary
= "11111001";
$hex = dechex(bindec($binary));
echo
$hex;
?>

這會輸出「f9」。請記住,二進位資料與二進位的字串表示法之間存在很大的差異。
15
j_lozinskit at yahoo dot co dot uk
20 年前
一個很好的選項是使用二進位資料建立字串以儲存 (例如將 sql 陳述式儲存到檔案) 到文字檔或 php 程式碼中,方法如下

<?php
$field
=bin2hex($field);
$field=chunk_split($field,2,"\\x");
$field= "\\x" . substr($field,0,-2);
?>

這會將您的欄位 (二進位或非二進位) 轉換為十六進位,然後將十六進位轉換為可以放置在 php 檔案中的字串

FFFFFFFF -> \xFF\xFF\xFF\xFF
7
pedram at redhive dot com
23 年前
為了躲避垃圾郵件機器人,我看到有人 (包括我自己) 在「mailto」標籤中以十六進位編碼他們的電子郵件地址。這是我編寫用於自動化此過程的一小段程式碼

<?php
function hex_encode ($email_address) {
$encoded = bin2hex("$email_address");
$encoded = chunk_split($encoded, 2, '%');
$encoded = '%' . substr($encoded, 0, strlen($encoded) - 1);
return
$encoded;
}
?>

例如
<a href="mailto:&lt;?=hex_encode("pedram@redhive.com")?>">寄信給我</a>

會產生以下位址
%70%65%64%72%61%6d%40%72%65%64%68%69%76%65%2e%63%6f%6d

-pedram
3
tightcode at hotmail dot com
23 年前
我只是在瀏覽以上內容,稍作修改,
提出了以下我認為更靈活的方法

<?php
function bin2hex($data) {
$corrected = ereg_replace("[^0-9a-fA-F]","",$data);
return
pack("H".strlen($corrected),$corrected);
}
?>

這將確保無論您傳遞什麼,即使它被填充
在極端位置或成對之間,都應傳回所需的資料。
2
subdivizion at gmail dot com
15 年前
以下是一個函式,用於檢查字串是否包含任何 7 位元 GSM 字元。

對於在 SMS 平台上工作的人來說,它可能會很有用。

<?php

function check_gsm($str)
{
$arr = array(
"0x00", "0x01", "0x02", "0x03", "0x04", "0x05","0x06","0x07","0x08","0x09",
"0x0A","0x0B","0x0C","0x0D","0x0E","0x0F","0x10","0x11","0x12","0x13",
"0x14","0x15","0x16","0x17","0x18","0x19","0x1A","0x1B","0x1B0A",
"0x1B14","0x1B28","0x1B29","0x1B2F","0x1B3C","0x1B3D","0x1B3E",
"0x1B40","0x1B65","0x1C","0x1D","0x1E","0x1F","0x20","0x21","0x22",
"0x23","0x24","0x25","0x26","0x27","0x28","0x29","0x2A","0x2B","0x2C",
"0x2D","0x2E","0x2F","0x30","0x31","0x32","0x33","0x34","0x35","0x36",
"0x37","0x38","0x39","0x3A","0x3B","0x3C","0x3D","0x3E","0x3F","0x40",
"0x41","0x42","0x43","0x44","0x45","0x46","0x47","0x48","0x49","0x4A",
"0x4B","0x4C","0x4D","0x4E","0x4F","0x50","0x51","0x52","0x53","0x54",
"0x55","0x56","0x57","0x58","0x59","0x5A","0x5B","0x5C","0x5D","0x5E",
"0x5F","0x60","0x61","0x62","0x63","0x64","0x65","0x66","0x67","0x68",
"0x69","0x6A","0x6B","0x6C","0x6D","0x6E","0x6F","0x70","0x71","0x72",
"0x73","0x74","0x75","0x76","0x77","0x78","0x79","0x7A","0x7B","0x7C",
"0x7D","0x7E","0x7F");

$strl = strlen($str);
for (
$i = 0;$i < $strl; $i++)
{
$char = '0x' . bin2hex(substr($str,$i,1));
$pos = in_array($char,$arr);
if (
$pos == 1)
{
$j++;
}
}

if (
$j < $strl)
{
return
false;
}
else
{
return
true;
}
}
?>
1
busuioc dot alexandru at gmail dot com
5 年前
產生 API 金鑰的便捷方式

<?php
$apikey
= bin2hex(random_bytes(32)); // 產生 64 個字元的字串 /^[0-9a-f]{64}$/
?>
To Top