ob_end_clean
ob_end_clean()
Odrzuca zawartość bieżącego bufora wyjścia i kończy bufor. Zwraca true, bez aktywnego bufora false z uwagą.
Przykłady
// stłumienie wyjścia funkcji, która coś wypisuje, choć nie powinna
function quiet_calculation() {
ob_start();
echo "Wydruk debugowania biblioteki";
$result = 6 * 7;
ob_end_clean();
return $result;
}
echo quiet_calculation(); // 42
// przed wysłaniem JSON odrzucić to, co zostało wypisane przez pomyłkę
function send_json($data) {
ob_start();
// tu mógłby być dołączony plik, który przez pomyłkę wypisuje pusty wiersz
echo "\n";
ob_end_clean();
echo json_encode($data);
}
send_json(array("ok" => true)); // {"ok":true}
Na co uważać
- Odrzuć zawartość buforów przed readfile() albo wypisaniem JSON, inaczej na początek danych trafią spacje albo komunikaty i uszkodzą plik albo JSON.
- Bez aktywnego bufora wypisuje uwagę i zwraca false. Na początku skryptu do pobierania plików używaj więc pętli while (ob_get_level()) ob_end_clean();.
- Odrzucone wyjście przepada. Jeśli go potrzebujesz, użyj ob_get_clean().
Powiązane funkcje:
ob_get_clean()
ob_start()
readfile()
ob_flush()