Могу ли я получить размер PHP-ответа по умолчанию?

#php

#php

Вопрос:

Возможно ли получить количество байтов, которые были отправлены обратно (или иным образом будут отправлены) клиенту?

Я не буду использовать ob_start() , потому что я не могу гарантировать, что все выходные данные, отправленные клиенту, могут быть гарантированы даже в случае фатального сбоя. Кроме того, поскольку это старое сложное веб-приложение, я не собираюсь вмешиваться в его вывод.

Комментарии:

1. Вы могли бы обернуть весь свой скрипт в ob_start и ob_end_clean . Сохраните значение ob_end_clean и используйте strlen для него. Просто echo сохраненное значение после того, как вы закончите, чтобы отправить фактический ответ.

2. Возможно, веб-сервер может сделать что-то лучше, чем PHP … взгляните на его возможности ведения журнала. Если вы каким-то образом не хотите использовать это в коде для выполнения чего-то большего, чем просто ведение журнала?

3. php.net/manual/en/function.ob-get-length.php

4. Я обновил вопрос, чтобы уточнить, что ob_start — это не вариант.

5. Для какой цели вам это нужно? Это важно, потому что есть много мест для получения этих данных, каждое с разной степенью точности и условиями.

Ответ №1:

Нет.

Теоретически SAPI мог бы это посчитать, но в большинстве случаев это не служит никакой цели, поэтому этого не делается.