How to determine wether ob_start(); has been called already How to determine wether ob_start(); has been called already php php

How to determine wether ob_start(); has been called already


ob_get_level returns the number of active output control handlers and ob_list_handlers returns a lift of those handlers. So you could do this:

if (!in_array('ob_gzhandler', ob_list_handlers())) {    ob_start('ob_gzhandler');} else {    ob_start();}

Although in general you can call ob_start any number of times you want, using ob_gzhandler as handler cannot as you would compress already compressed data.


if (ob_get_level())    echo "ob already started";


General:

if (ob_get_status())  {  // ob started}

More specific

$status = ob_get_status();if ($status['name']=='ob_gzhandler') { // ob named ob_gzhandler started}