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.

📘 Naucz się w lekcji →