ob_get_length
funkcja
Zwraca rozmiar (w bajtach) zawartości aktywnego bufora wyjścia. Zwraca false, gdy bufor nie jest aktywny.
ob_get_length(): int|false
ob_get_length podaje liczbę bajtów aktualnie zgromadzonych w buforze — bez odczytywania ani opróżniania samej zawartości. Przydatna gdy chcesz sprawdzić rozmiar odpowiedzi HTTP zanim ją wyślesz, albo zdecydować, czy bufor w ogóle coś zawiera.
<?php
declare(strict_types=1);
ob_start();
echo 'hello world';
echo ob_get_length(); // 11
echo '!';
echo ob_get_length(); // 14
ob_end_clean();
// Poza buforem funkcja zwraca false
var_dump(ob_get_length()); // bool(false)
Typowe zastosowanie — warunkowe wysłanie nagłówka Content-Length:
<?php
declare(strict_types=1);
ob_start();
require 'szablon.php';
$dlugosc = ob_get_length();
header('Content-Length: ' . $dlugosc);
ob_end_flush(); // wyślij bufor razem z nagłówkiem
Uwaga: ob_get_length mierzy bajty, nie znaki. Dla UTF-8 jeden znak wielobajtowy (np. „ó") zajmuje więcej niż 1 bajt.