Heim > Backend-Entwicklung > PHP-Tutorial > hex2bin in PHP

hex2bin in PHP

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-23 14:36:32
Original
1065 Leute haben es durchsucht

需要把格式为 0xd4d9b2e2cad4d2bbcfc2 的字符串转换为文本,但是PHP 中只找到bin2hex方法 --  Convert binary data into hexadecimal representation. 以下是hex2bin 的实现 :) 

     /**/ /**
    * 从16进制字符串中的两个字符返回一个byte
    * @param $str - 包含字符的字符串
    * @param $start - 第一个字符的位置
    * @return string 分析后的byte
    * @throw Exception
    */  
     private   static  function _FromHexPair($str,$start  =   0 )
     {
        $c1 = $str[$start];        //取第一个字符
        $c2 = $str[$start + 1];    //第二个
        
        $c1 = ord($c1);
        $c2 = ord($c2);
        
        //字符对应的值
        $i1;    
        $i2;
        
        //$c1=>$i1
        if($c1>=ord('0')&& $c1            $i1 =$c1-ord('0');
        else if($c1>=ord('A')&&$c1            $i1 =$c1-ord('A')+10;
        else if($c1>=ord('a')&&$c1            $i1 =$c1-ord('a')+10;
        else throw new exception("unexpected char 1:" . $c1 . " @ " . $start);
        
        //$c2=>$i2
        if($c2>=ord('0')&&$c2            $i2 =$c2-ord('0');
        else if($c2>=ord('A')&&$c2            $i2 =$c2-ord('A')+10;
        else if($c2>=ord('a')&&$c2            $i2 =$c2-ord('a')+10;
        else throw new exception("unexpected char 2:" . $c2 . " @ " . ($start+1));
        
        return chr(($i1    }
    
     /**/ /**
    * 把十六进制字符串转换成文本字符串
    * @param $str - 要转换的字符串,不能为null.
    * @return string
    * @throw Exception
    */   
     public   static  function hex2bin($str)
     {
        //判断长度
        if((strlen($str)%2) != 0 )
            throw new exception("str.Length % 2 != 0");
        //计算byte[]的长度
        $len = strlen($str)/2;
        $str_result = '';
        //循环复制
        for($i=0;$i        {
            $str_result .= self::_FromHexPair($str,$i*2);
        }
        return $str_result;
    }


#-------- 2007-05-28 update --------#
原来很简单的一个问题 被自己搞的很复杂 - -;;

function  hex2bin( $hex_string ) {
     return   pack ( ' H* ' ,   $hex_string );
}

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
CAD-Datei in PHP öffnen?
Aus 1970-01-01 08:00:00
0
0
0
Warum ist 0==null in PHP wahr?
Aus 1970-01-01 08:00:00
0
0
0
Wie installiere ich PHP in Yum Nginx?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie PHP in einer Windows-Umgebung
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage