gpt4 book ai didi

PHP将二进制字符串转换为二进制的有效方法

转载 作者:可可西里 更新时间:2023-11-01 13:23:03 28 4
gpt4 key购买 nike

这是最简单的(向下滚动以查看问题):我正在使用 Huffman 编码来使用 PHP 压缩文件(用于项目)。我已经制作了 map ,并将所有内容都变成了这样的字符串:

00101010001100001110011101001101111011111011

现在,我需要将其转换为实际的二进制字符串,在当前状态下,它只是一个由 1 和 0 组成的字符串。

这是问题:

1 和 0 组成的字符串有 17,747,595 个字符长,在 550,000 左右确实变慢了

这是我的代码:

<?php

$i=0
$len = strlen($binaryString);

while ($i < $len){
$section = substr($binaryString,$i,$i+8);
$out .= chr(bindec($section));
$i=$i+8;
}

?>

我怎样才能让它足够高效以运行 1700 万个字符串?

非常感谢您的支持!

最佳答案

你不需要循环你可以使用 gmppack

$file = "binary.txt";
$string = file_get_contents($file);
$start = microtime(true);

// Convert the string
$string = simpleConvert($string);
//echo $string ;

var_dump(number_format(filesize($file),2),microtime(true)- $start);

function simpleConvert($string) {
return pack('H*',gmp_strval(gmp_init($string, 2), 16));
}

输出

string '25,648,639.00' (length=13) <---- Length Grater than 17,747,595
float 1.0633520126343 <---------------- Total Conversion Time

链接

注意解决方案需要 GMP Functions

关于PHP将二进制字符串转换为二进制的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258327/

28 4 0
文章推荐: php - 跟踪 PHP "out of memory"错误
文章推荐: javascript - 具有图像和边框的跨浏览器兼容的六边形形状(没有 SVG 或背景图像)
文章推荐: windows - 相当于 BASH(等) 'type' 命令的 PowerShell?
文章推荐: c# - 从
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com