在用php函数hex2bin()把16转换成字符串时,如果输入的16进制数据有误,16进制字符串长度不是偶数位导致转换失败。16进制转换成字符串失败时Hexadecimal input string must have an even length问题可以用以下代码解决。

$str = '687474703a2f2f7a697875657068702e6e65742f696e6465782e68746d6c';
// 过滤非16进制字符
$str = strspn($str, '0123456789abcdefABCDEF');
//字符串长度不是偶数时pack来处理
if (strlen($str) % 2) {
    echo pack("H*", $str);
} else {
    echo hex2bin($str);
}

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章