вот тощий (прокрутите вниз, чтобы увидеть проблему): я использую кодировку Хаффмана для сжатия файла с использованием PHP (для проекта). Я сделал карту и превратил все в строку следующим образом:
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;
}
?>
Как я могу сделать это достаточно эффективным для запуска строки из 17 миллионов символов?
Большое спасибо за любую поддержку!
unset( $out );
перед концом блока цикла и посмотреть, имеет ли это значение. Или используйте некоторую функциюfopen
для чтения X байтов ввода, выполнения ваших действий и записи в другой файл. На каждой итерации должно использоваться только X байтов памяти. - person feeela   schedule 07.11.2012