PHP | ob_start() Function Last Updated : 08 Mar, 2018 Comments Improve Suggest changes Like Article Like Report Let's take a quick recap. PHP is an interpreted language thus each statement is executed one after another, therefore PHP tends to send HTML to browsers in chunks thus reducing performance. Using output buffering the generated HTML gets stored in a buffer or a string variable and is sent to the buffer to render after the execution of the last statement in the PHP script. But Output Buffering is not enabled by default. In order to enable the Output Buffering one must use the ob_start() function before any echoing any HTML content in a script. Syntax: bool ob_start () Parameters: The function can accept a bunch of optional parameters as follows: Callback function: This is an optional parameter that expects a function that takes the contents of the output buffer and returns a string that is to be sent to the browser for rendering. The callback function is generally used for compressing the HTML content. Chunk size: This is another optional parameter that sets the output buffer size of provided size and outputs as soon as the buffer is either full or exceeded. Flags: This is another optional parameter that accepts a bitmask to control the operations that can be implemented on the output buffer. This parameter is passed to restrict access. The Default permissions gives access to clean, flush and removal of the buffer. Return Type: This function returns TRUE on success otherwise FALSE. Below program illustrates the working of ob_start() in PHP: PHP <?php // PHP code to illustrate the working // of ob_start() Function function callback($buffer){ // Return Everything in CAPS. return (strtoupper($buffer)); } ob_start("callback"); echo "Hello Geek!"; ob_end_flush(); ?> Output: HELLO GEEK! Important points to note: Enables Output Buffering. Output Buffering flags can be of four types PHP_OUTPUT_HANDLER_CLEANABLE(only clean), PHP_OUTPUT_HANDLER_FLUSHABLE(only flush), PHP_OUTPUT_HANDLER_REMOVABLE(only remove), PHP_OUTPUT_HANDLER_STDFLAGS(allowed every operation). Output buffers are stackable, thus nested ob_start() methods are allowed and works as desired if they are closed/flushed sequentially. Reference: https://www.php.net/manual/en/function.ob-start.php Comment More info P PronabM Follow Improve Article Tags : Misc Web Technologies PHP PHP-input-output PHP-function +1 More Explore PHP Tutorial 8 min read BasicsPHP Syntax 4 min read PHP Variables 5 min read PHP | Functions 8 min read PHP Loops 4 min read ArrayPHP Arrays 5 min read PHP Associative Arrays 4 min read Multidimensional arrays in PHP 5 min read Sorting Arrays in PHP 4 min read OOPs & InterfacesPHP Classes 2 min read PHP | Constructors and Destructors 5 min read PHP Access Modifiers 4 min read Multiple Inheritance in PHP 4 min read MySQL DatabasePHP | MySQL Database Introduction 4 min read PHP Database connection 2 min read PHP | MySQL ( Creating Database ) 3 min read PHP | MySQL ( Creating Table ) 3 min read PHP AdvancePHP Superglobals 6 min read PHP | Regular Expressions 12 min read PHP Form Handling 4 min read PHP File Handling 4 min read PHP | Uploading File 3 min read PHP Cookies 9 min read PHP | Sessions 7 min read Like