PHP 从 mysql 回显十六进制

PHP echo hex from mysql

在 PHP 中,我想从 mysql 数据库

中将 UUID 打印为文本
$con = mysql_connect("localhost","user","pass");
if (!$con) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db('advancedban', $con);

$query="SELECT * FROM bm_name_bans";                    
$results = mysql_query($query);
while ($row = mysql_fetch_array($results)) {
    echo $row['actor_id'];
}

行 actor_is 是二进制类型 (16),在网站上我会得到 *?|?O2a?GCtq??I 你能帮我得到输出 082a3f7c3f4f32613f474374713f3f49?

您需要将二进制字符串转换为十六进制字符串。您可以使用 dechexord PHP 函数的组合,如下所示:

$row['actor_id'] = '*?|?O2a?GCtq??I';

for ($i = 0; $i < strlen($row['actor_id']); $i++) {
    $currentChar = $row['actor_id'][$i]; // you can access string characters like it is an array
    echo dechex(ord($currentChar));
}

注意strlen是二进制安全的,可以在这里使用。