ob_list_handlers în PHP

Returnează lista funcțiilor care prelucrează bufferele de ieșire deschise.

Sintaxă
ob_list_handlers(): array

Ce face ob_list_handlers

Pentru fiecare buffer deschis, ob_list_handlers dă numele funcției care îi prelucrează conținutul. Un buffer fără funcție apare ca default output handler, iar unul cu funcție anonimă apare ca {closure:...}, urmat de fișier și linie.

Este util pentru depanare, de exemplu când vrei să afli dacă un modul a pornit compresia cu ob_gzhandler.

Ce returnează

Un tablou cu numele funcțiilor, de la primul buffer deschis la ultimul.

Exemple

Exemplul 1: Două buffere deschise

<?php
function majuscule(string $text): string
{
    return strtoupper($text);
}

ob_start();
ob_start("majuscule");
$lista = ob_list_handlers();
ob_end_clean();
ob_end_clean();

print_r($lista);

Rezultat

Array
(
    [0] => default output handler
    [1] => majuscule
)

Greșeli frecvente

  • Dai direct o funcție internă cu un singur parametru: ob_start("strtoupper"). PHP îi trimite două argumente și primești ArgumentCountError. Folosește o funcție anonimă.

Comenzi înrudite

  • ob_get_status: Returnează informații despre bufferul de ieșire curent sau despre toate bufferele.
  • ob_start / ob_get_clean / ob_end_flush: Pornește un buffer: tot ce afișezi după el este păstrat în memorie în loc să fie trimis imediat.
  • ob_get_level: Returnează câte buffere de ieșire sunt deschise, unul în altul.