还原/X 16进制特殊字符

13 篇文章 2 订阅
   $str = "<?xml version=\x221.0\x22 encoding=\x22utf-8\x22?>\x0A<order id=\x22test\x22 affiliate=\x22main\x22 event_id=\x221\x22 ref=\x22TPCYA\x22 alias=\x22\x22/>";

    function hexdec_string($content) {
        preg_replace_callback(
            "(\\\\x([0-9a-f]{2}))i",
            function($matches) {return chr(hexdec($matches[1]));},
            // $string
            $content
        );  

        return $content;
    }

    echo htmlspecialchars(hexdec_string($str), ENT_QUOTES); //将 xml的内容作为纯文本输出
	exit;
### 回答1: null 是一个计算机科学术语,表示空值或缺失值。在编程语言中,null 通常用于表示一个变量没有被分配任何值。null 可以作为特殊值使用,例如表示函数没有返回任何值,或表示一个指针不指向任何有效的内存地址。 ### 回答2: &num);这段代码的作用是将字符串"7B"转换为十进制数并存储在变量num中。 首先,声明一个字符数组str,并将字符串"7B"赋值给它。之后,声明一个整型变量num,用于存储转换后的十进制数。 接下来,使用sscanf函数将字符串str按照八进制格式"%o"进行转换,并将转换结果存储在num变量的地址中。"%o"是用于转换八进制数的格式控制说明符。 最终,变量num中储存的值为转换后的十进制数,即十进制数123。 需要注意的是,这里的字符串"7B"表示的是一个八进制数,不是十进制数7乘以十进制数11。所以将其转换为十进制数时使用的是八进制的表示方式。 ### 回答3: &num); 这段代码的作用是将字符串"7B"解析为一个八进制数,并将解析后的结果赋值给变量num。其中"%o"是sscanf函数的格式控制字符串,表示将字符串按照八进制数的格式进行解析。 首先,变量str是一个字符数组,存储了字符串"7B"。字符数组的名称str可以被视为指针,指向存储该字符串的内存地址。 接下来,调用sscanf函数,它的第一个参数是待解析的字符串的地址,这里是str。第二个参数是格式控制字符串"%o",表示按照八进制数的格式解析字符串。第三个参数是一个指针,用于接收解析后的值,这里是&num,表示将解析后的八进制数赋值给变量num。 sscanf函数会根据格式控制字符串的要求,从待解析字符串中按照指定的格式提取数据,并将解析后的结果保存到给定的变量中。在这个例子中,待解析字符串是"7B",使用了"%o"格式控制字符串,意味着解析的结果是一个八进制数。 最后,解析出来的八进制数会被赋值给变量num,供后续代码使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值