Мне нужно распаковать файл, который хранится в скрипте PHP в формате base64. Я могу распаковать его что-то вроде:
function decompress($buffer) {
$cmd = "base64 -d | tar -xJf -";
$fp = popen("base64 -d | tar -xJf -", "w");
fwrite($fp, $buffer);
pclose($fp);
}
/*...*/
$fs_res = ob_start("decompress");
?>VERY___LONG___BASE64___STRING<?php
ob_end_flush();
... и, кажется, работает нормально, потому что пакет без сжатия.
Проблема в том, что вся строка base64 передается в обратный вызов одновременно, но я боюсь, что это может насытить ОЗУ, если файл tar больше, но я не могу найти способ разделить буферкусками.