PHP | ob_start() Function Last Updated : 08 Mar, 2018 Comments Improve Suggest changes 1 Likes 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 Create Quiz Comment P PronabM Follow 1 Improve P PronabM Follow 1 Improve Article Tags : Misc Web Technologies PHP PHP-input-output PHP-function +1 More Explore BasicsPHP Syntax4 min readPHP Variables5 min readPHP | Functions6 min readPHP Loops4 min readArrayPHP Arrays5 min readPHP Associative Arrays4 min readMultidimensional arrays in PHP5 min readSorting Arrays in PHP4 min readOOPs & InterfacesPHP Classes2 min readPHP | Constructors and Destructors5 min readPHP Access Modifiers4 min readMultiple Inheritance in PHP4 min readMySQL DatabasePHP | MySQL Database Introduction4 min readPHP Database connection2 min readPHP | MySQL ( Creating Database )3 min readPHP | MySQL ( Creating Table )3 min readPHP AdvancePHP Superglobals6 min readPHP | Regular Expressions12 min readPHP Form Handling4 min readPHP File Handling4 min readPHP | Uploading File3 min readPHP Cookies9 min readPHP | Sessions7 min read Like