php 字符串与二进制互转

header("charset=utf-8;");
 
function StrToBin($str){
    //1.列出每个字符
    $arr = preg_split('/(?<!^)(?!$)/u', $str);
    //2.unpack字符
    foreach($arr as &$v){
        $temp = unpack('H*', $v);
        $v = base_convert($temp[1], 16, 2);
        unset($temp);
    }
 
    return join(' ',$arr);
}
 
function BinToStr($str){
    $arr = explode(' ', $str);
    foreach($arr as &$v){
        $v = pack("H".strlen(base_convert($v, 2, 16)), base_convert($v, 2, 16));
    }
 
    return join('', $arr);
}
 
  echo StrToBin("aaaccc天空");
  echo BinToStr('1100001 1100001 1100001 1100011 1100011 1100011 111001011010010010101001 111001111010100110111010');

编程技巧