如何在php5.3中做hex2bin

时间:2016-12-30 08:20:07

标签: php hex

php5.4之后支持

hex2bin()函数。它在php5.3中不可用。我怎么能在php3中做hex2bin?

 echo hex2bin("48656c6c6f20576f726c6421");

3 个答案:

答案 0 :(得分:2)

在PHP 5.3中,您可以使用pack

docs

  

根据格式将给定参数打包成二进制字符串。

string pack ( string $format [, mixed $args [, mixed $... ]] )

所以你在寻找:

$result = pack('H*', '48656c6c6f20576f726c6421');

答案 1 :(得分:1)

只需使用

 $foo = pack("H*" ,"48656c6c6f20576f726c6421");
 echo $foo

答案 2 :(得分:0)

hex2bin可用于PHP版本> = 5.4.0 - 您的PHP版本是2日期吗?

如果你的版本无法更新,下面(从php.net复制)是一个解决方案: https://stackoverflow.com/a/17963343/6775488

<?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; 
    } 
?>