Ce face mb_output_handler
mb_output_handler nu se apelează direct. Se dă lui ob_start, iar PHP o apelează cu conținutul paginii înainte de trimitere. Dacă tipul paginii este text (de exemplu text/html), textul este convertit în codarea dată de mb_http_output, iar antetul Content-Type primește charset-ul potrivit.
Este utilă doar pentru site-uri care trebuie să trimită pagini în altă codare decât UTF-8, de exemplu către sisteme vechi.
Parametri
| Parametru | Descriere |
|---|---|
$string |
Conținutul acumulat în buffer. |
$status |
Starea bufferului (constante PHP_OUTPUT_HANDLER_*), dată de PHP. |
Ce returnează
Conținutul convertit.
Exemple
Exemplul 1: Pagină trimisă în ISO-8859-16
Pe server, browserul primește antetul de mai jos, iar diacriticele sunt trimise câte un octet. Codul trebuie să ruleze înainte de orice afișare.
<?php
mb_http_output("ISO-8859-16");
ob_start("mb_output_handler");
header("Content-Type: text/html");
echo "<p>Bun venit în Iași!</p>";
ob_end_flush();
Antetul trimis browserului
Content-Type: text/html;charset=ISO-8859-16
Greșeli frecvente
- Pornești bufferul după ce ai afișat deja ceva. Antetul nu mai poate fi modificat și primești avertismentul
Cannot modify header information - headers already sent.
Comenzi înrudite
mb_http_output / mb_http_input: mb_http_output setează codarea conținutului trimis browserului; mb_http_input spune în ce codare au venit datele HTTP.mb_convert_encoding: Convertește un text dintr-o codare de caractere în alta, de exemplu din ISO-8859-16 în UTF-8.