Я не знаю, упоминалось ли это ранее. Но я нашел решение здесь :
int result = (int)(floor(sqrt(b)) - ceil(sqrt(a)) + 1);
что вы используете для создания архива? Вы можете использовать поток php: // temp или php: // memory для чтения и записи в / из архива.
Что касается вашего комментария о том, что php: // temp работает для вас, за исключением случаев, когда вы его закрываете, попробуйте оставить его открытым, очистите вывод, затем перемотайте его обратно на 0 и прочтите.
Дополнительные примеры см. Здесь: http://us.php.net/manual/en/function.tmpfile.php
Также исследуйте буферизацию и захват вывода: http: // us. php.net/manual/en/function.ob-start.php
Действительно ли здесь проблема с производительностью или это просто оскорбляет ваше чувство правоты? Многие процессы записывают временные файлы и удаляют их, и часто они никогда не попадают на диск из-за кэширования.
Временный файл автоматически удаляется при закрытии. Это природа.
Я могу придумать только два способа создания zip-файла в памяти и его обслуживания, и оба, вероятно, доставляют больше хлопот, чем они того стоят.