开发者

Converting string of 1s and 0s into binary value, then compress afterwards ,PHP

开发者 https://www.devze.com 2023-03-19 09:14 出处:网络
I have a string for example: \"10001000101010001\" in PHP I am compressing it with gzcompress, but it compresses ASCII equivalent.

I have a string for example: "10001000101010001" in PHP I am compressing it with gzcompress, but it compresses ASCII equivalent. I would like to compress the string as if it were binary data not it A开发者_开发百科SCII binary equivalent.

Bascially I have 2 problems:

  1. how to convert a list of 1s and 0s into binary
  2. compress the resulting binary with gzcompress

thanks in advance.


Take a look at the bindec() function.

Basically you'll want something like (dry-coded, please test it yourself before blindly trusting it)

function binaryStringToBytes($binaryString) {
    $output = '';
    for($i = 0; $i < strlen($binaryString); $i += 8) {
        $output .= chr(bindec(substr($binaryString, $i, 8)));
    }
    return $output;
}

to turn a string of the format you specified into a byte string, after which you can gzcompress() it at will.

The complementary function is something like

function bytesToBinaryString($byteString) {
    $out = '';
    for($i = 0; $i < strlen($byteString); $i++) {
        $out .= str_pad(decbin(ord($byteString[$i])), 8, '0', STR_PAD_LEFT);
    }
    return $out;
}
0

精彩评论

暂无评论...
验证码 换一张
取 消