#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 мог бы это посчитать, но в большинстве случаев это не служит никакой цели, поэтому этого не делается.