字符串函数
在线手册:中文  英文

hex2bin

(PHP >= 5.4.0)

hex2binDecodes a hexadecimally encoded binary string

说明

string hex2bin ( string $data )

Decodes a hexadecimally encoded binary string.

Caution

This function does NOT convert a hexadecimal number to a binary number. This can be done using the base_convert() function.

参数

data

Hexadecimal representation of data.

返回值

Returns the binary representation of the given data 或者在失败时返回 FALSE.

错误/异常

If the hexadecimal input string is of odd length an E_WARNING level error is thrown.

更新日志

版本 说明
5.4.1 A warning is thrown if the input string is of odd length. In PHP 5.4.0 the string was silently accepted, but the last byte was truncated.

范例

Example #1 hex2bin() example

<?php
$hex 
hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>

以上例程的输出类似于:

string(16) "example hex data"

参见


字符串函数
在线手册:中文  英文

用户评论:

Johnson (2013-01-01 12:23:57)

For those who have php version prior to 5.4, i have a solution to convert hex to binary. It works for me in an encryption and decryption application.

<?php
        
function hextobin($hexstr)
    {
        
$n strlen($hexstr);
        
$sbin="";   
        
$i=0;
        while(
$i<$n)
        {       
            
$a =substr($hexstr,$i,2);           
            
$c pack("H*",$a);
            if (
$i==0){$sbin=$c;}
            else {
$sbin.=$c;}
            
$i+=2;
        }
        return 
$sbin;
    }
?>

jarismar dot php at gmail dot com (2012-12-17 13:13:03)

A way to convert hex strings in the form "0x123ABC" to integer is to use the function base_convert("0x123ABC", 16, 10)

Anonymous (2012-02-23 02:28:43)

The function pack("H*" , $hex_string); will not work as expected if $hex_string contains an odd number of hexadecimal digits.

For example:

<?php echo ord(pack("H*"'F')); ?>

will return 240 not 15. Use pack("H*", '0F'); instead.

Anonymous (2011-08-31 01:32:41)

The function hex2bin does not exist in PHP5.
You can use 'pack' instead :
$binary_string = pack("H*" , $hex_string);

易百教程