将1和0的字符串转换为二进制值,然后压缩,PHP

发布于 2024-11-19 11:21:13 字数 223 浏览 0 评论 0原文

我有一个字符串,例如: PHP 中的“10001000101010001” 我用 gzcompress 来压缩它,但它压缩的是 ASCII 等价的。 我想将字符串压缩为二进制数据,而不是 ASCII 二进制数据。

基本上我有两个问题:

  1. 如何将 1 和 0 的列表转换为二进制文件
  2. ,使用 gzcompress 压缩生成的二进制文件,

谢谢。

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 ASCII 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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

霓裳挽歌倾城醉 2024-11-26 11:21:14

看一下 bindec() 函数。

基本上,您需要类似(干编码,请在盲目信任它之前自行测试)

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

将指定格式的字符串转换为字节字符串,然后您可以 gzcompress() 它随意。

互补函数是这样的

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;
}

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;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文