PHP | 使用pack()函数将十六进制字符串转换为字符串

给定十六进制字符串,我们必须将其转换为ASCII字符字符串。

要将十六进制字符串转换为ASCII字符字符串,我们可以使用pack()格式为“ H *”的函数,该函数表示源字符串为十六进制格式。

语法:

    pack("H*", hex_string);

例子:

    Input: "48656c6c6f20776f726c64"
    Output: "Hello world"

    Input: "4142432031323320402324252e2058595a"
    Output: "ABC 123 @#$%. XYZ"

PHP代码:

<?php
    $str = "Hello world";
    $hex_str = bin2hex($str);
    $str1 = pack("H*", $hex_str);
    
    //打印两个字符串
    echo ("str = " . $str . "\n");
    echo ("hex_str = " . $hex_str . "\n");
    echo ("str1 = " . $str1 . "\n");
    
    $str = "ABC 123 @#$%. XYZ";
    $hex_str = bin2hex($str);
    $str1 = pack("H*", $hex_str);
    
    //打印两个字符串
    echo ("str = " . $str . "\n");
    echo ("hex_str = " . $hex_str . "\n");    
    echo ("str1 = " . $str1 . "\n");
?>

输出结果

str = Hello world
hex_str = 48656c6c6f20776f726c64
str1 = Hello world
str = ABC 123 @#$%. XYZ
hex_str = 4142432031323320402324252e2058595a
str1 = ABC 123 @#$%. XYZ