php buffer setting method: first open the buffer, the code is [ob_start()]; then return the contents of the internal buffer, the code is [ob_get_contents]; finally send the contents of the internal buffer to the browser , and close the output buffer, the code is [ob_end_flush].
php buffer setting method:
1. Introduction to related functions:
1. Flush: Output the content in the buffer and delete the buffer.
Function format: flush()
Description: This function is frequently used and is very efficient.
Related learning recommendations:php programming(video)
2. ob_start: open the output buffer
Function format: void ob_start(void)
Description: When the buffer is activated, all non-file header information from the PHP program will not be sent, but will be saved in the internal buffer. In order to output the contents of the buffer, you can use ob_end_flush() or use ob_end_clean() to output the contents of the buffer.
3, ob_get_contents: Returns the contents of the internal buffer.
Usage: string ob_get_contents(void)
Description: This function will return the contents of the current buffer. If the output buffer is not activated, it will return FALSE.
4. ob_get_length: Returns the length of the internal buffer.
Usage: int ob_get_length(void)
Description: This function will return the length in the current buffer; the same as ob_get_contents, if the output buffer is not activated. then returns FALSE.
5. ob_end_flush: Send the contents of the internal buffer to the browser and close the output buffer.
Usage: void ob_end_flush(void)
Description: This function sends the contents of the output buffer (if any).
6. ob_end_clean: Delete the contents of the internal buffer and close the internal buffer
Usage: void ob_end_clean(void)
Description: This function will not output internal The contents of the buffer!
7. ob_implicit_flush: Turn on or off absolute refresh
Usage method: void ob_implicit_flush ([int flag])
Description: Anyone who has used Perl knows?$| The meaning of =x, this string can open/close the buffer, and the ob_implicit_flush function is the same as that. The default is to close the buffer and open absolute output.
2. Usage examples:
At the beginning, the author said that using buffer control functions can prevent errors in sending information in the file header. Here is an example:
The code is as follows:
//PHP提示符 ob_start(); //打开缓冲区 echo "Hello/n"; //输出 header('location:gotourl.php'); //把浏览器重定向到gotourl.php ?>
If you removeob_start
, PHP will prompt an error on line 4 of the file (the error message is as shown above), but add ob_start, There will be no error prompt. The reason is that when the buffer is opened, the characters after echo will not be output to the browser, but will be retained on the server. They will not be output until you use flush orob_end_flush
, so it does not There will be any errors in the file header output!
The following is a very classic use:
For example, you useto get the setting information of the server and client, but This information will vary depending on the client. What if you want to save the output of the phpinfo() function? Before there was no buffer control, it can be said that there was no way at all, but with buffer control, we can easily solve it:
The code is as follows:
ob_start(); //打开缓冲区 phpinfo(); //使用phpinfo函数 ?$info=ob_get_contents(); //得到缓冲区的内容并且赋值给?$info ?$file=fopen('info.txt','w'); //打开文件info.txt fwrite(?$file,?$info); //写入信息到info.txt fclose(?$file); //关闭文件info.txt ?>
Related recommendations:Programming Video Course
The above is the detailed content of How to set up php buffer. For more information, please follow other related articles on the PHP Chinese website!