惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - guoadou

新的开始 《项目管理艺术》读书笔记 —— 决定做什么的常见不良决策一览 《项目管理艺术》读书笔记 —— 项目规划的三种观点 《IF》 - Joseph Rudyard Kipling 论信息系统的架构设计 【转】系统架构设计师考试大纲(2009) nginx error_page 404 用 php header 无法跳转 The Elements of Programming Style 导出MySQL数据库结构的PHP脚本 轻松面试 搞定技术奇才 Cyworld Values & Principles 通过创建SCHEMABINDING VIEW提高JOIN的速度 长的很像Cyworld的QQ [北京][赛我网]HTML高级工程师 - guoadou - 博客园 [招聘] 韩国企业招聘Java .NET 开发人员 utf8_to_unicode in PHP document.body.scrollTop总是零的原因 unicode_to_utf8 in PHP [新闻]Cyworld.com.cn开始公测
hex2bin in PHP
guoadou · 2005-05-12 · via 博客园 - guoadou

需要把格式为 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<=ord('9'))
            $i1 
=$c1-ord('0');
        
else if($c1>=ord('A')&&$c1<=ord('F'))
            $i1 
=$c1-ord('A')+10;
        
else if($c1>=ord('a')&&$c1<=ord('f'))
            $i1 
=$c1-ord('a')+10;
        
else throw new exception("unexpected char 1:" . $c1 . " @ " . $start);
        
        
//$c2=>$i2
        if($c2>=ord('0')&&$c2<=ord('9'))
            $i2 
=$c2-ord('0');
        
else if($c2>=ord('A')&&$c2<=ord('F'))
            $i2 
=$c2-ord('A')+10;
        
else if($c2>=ord('a')&&$c2<=ord('f'))
            $i2 
=$c2-ord('a')+10;
        
else throw new exception("unexpected char 2:" . $c2 . " @ " . ($start+1));
        
        
return chr(($i1<<4+ $i2);    //返回$i1*16+$i2
    }

    
    
/**
    * 把十六进制字符串转换成文本字符串
    * @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<$len;$i++)
        
{
            $str_result .
= self::_FromHexPair($str,$i*2);
        }

        
return $str_result;
    }

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

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