首页  >  文章  >  后端开发  >  PHP 输出缓冲

PHP 输出缓冲

WBOY
WBOY原创
2024-08-29 13:07:06590浏览

PHP 输出缓冲是一个确认 PHP 引擎保存数据的过程,同时在输入进行处理时提供输出。一旦 PHP 引擎获得处理后的数据并执行以提供输出,那么同时该数据就会被一点一点地发送到引擎并发送到浏览器。如果使用上述的输出缓冲机制来执行,那么这将在数据处理方面提供更高的效率和可行性,因为数据首先存储在变量中,然后作为脚本的一部分发送到浏览器。

广告 该类别中的热门课程 PHP 开发人员 - 专业化 | 8 门课程系列 | 3次模拟测试

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法:

输出缓冲没有固定的格式,但可以通过以下方式表示和使用:

<?php
function to start
php_info( ); // processing before giving the output.
use variable to assign the final value as an output
?>

输出缓冲在 PHP 中如何工作?

PHP 中的输出缓冲在其工作方面具有重要意义,如下所示:

  • 由于 PHP 是一种解释性语言,输出流引导的页面很难轻松显示。因此,正在采取一些举措,例如输出缓冲。
  • 输出缓冲有助于将数据存储到某个变量中,该变量将在执行 PHP 脚本后将请求发送到浏览器之前用于渲染。
  • 如果页面包含在输出缓冲及其各种功能中,则所有加载时扭曲且缓慢的页面都会变得正常。
  • PHP 中的输出缓冲有很多优点,其中之一是开发人员虔诚地使用这个 PHP 函数,因为它减少了客户端和服务器之间的交互次数,作为一个整体,HTML立即发送到浏览器,从而使其对于较大规模的项目更加通用、灵活和高效,在这些项目中,大量页面和组件作为大屏幕出现在图片中。
  • 另一方面,还有一些更多的优点,因为整个输出缓冲区使用许多其他变量作为 HTML 中的字符串整体存储,所有 HTML 文件都可以使用 string 方法和其他编写的内置自定义方法进行操作和修改由程序员编写,这反过来又有助于 PHP 网页的流畅渲染。
  • 许多其他压缩方法也可用于创建和操作更简单的渲染方式。
  • Cookie 和会话管理在 PHP 中的输出缓冲方面也发挥着关键作用,因为它为 PHP 中的输出缓冲提供了额外的优势,可以有效地获取标头信息,这些标头信息不完全作为内容的一部分发送,但无论是什么需要发送。
  • 此外,应该记住,在任何面向 PHP 的应用程序中使用输出缓冲之前,非常需要检查与 PHP 版本相关的兼容性问题,因为它可能根据要求使用其他 PHP 版本,然后可能会出现PHP 输出缓冲功能可能无法按预期正常工作。因此,需要检查输出缓冲是否启用,默认情况下它是关闭的。
  • 它还提供了一些数据库调用方面的更多功能,因为它允许程序员使用一些高级功能,例如最小化和减少,这也适用于 cookie 和会话。
  • 输出缓冲被认为是最安全、最高效的方法之一,对页面渲染需要格外小心和能力,因为它提供了大多数最终用户所期望的更快、灵活、更流畅、安全的方法。
  • 通过保存数据和各种操作来使用缓冲来临时改进整个页面导航和渲染的过程是最现代化的概念之一。

示例

让我们讨论 PHP 输出缓冲的示例。

示例#1

此程序演示了由用户定义的回调() 函数,该函数将替换变量中定义的值,如输出所示。

代码:

<!DOCTYPE html>
<html>
<body>
<?php
function cll_bck($buff)
{
return (str_replace("Mobile", "Tabs", $buff));
}
ob_start("cll_bck");
?>
<html>
<body>
<p>Everyone_prefers_Mobile_over_Tabs.</p>
</body>
</html>
<?php
ob_end_flush();
?>
</body>
</html>

输出:

PHP 输出缓冲

示例#2

此程序演示了 ob_get_contents() 函数,用于获取定义到最终引擎的内容,同时传递输出中所示的变量。

代码:

<!DOCTYPE html>
<html>
<body>
<?php
ob_start();
echo "Today_day_is_good. ";
$o_t_1 = ob_get_contents();
echo "and_pleasant";
$o_t_2 = ob_get_contents();
ob_end_clean();
var_dump($o_t_1, $o_t_2);
?>
</body>
</html>

输出:

PHP 输出缓冲

Example #3

This program demonstrates the ob_start function where the output buffering gets initiated and then it gets displayed as shown in the output.

Code:

<!DOCTYPE html>
<html>
<body>
<?php
ob_start();
echo 'Text written will_get displayed easily.';
?>
</body>
</html>

Output:

PHP 输出缓冲

Example #4

This program demonstrates the use of text that will get removed once the ob_end_clean function is called as shown in the output.

Code:

<!DOCTYPE html>
<html>
<body>
<?php
ob_start();
echo 'Text_written_will_get_removed_easily_using ob_end_clean.';
ob_end_clean();
?>
</body>
</html>

Output:

PHP 输出缓冲

Example #5

This program demonstrates the ob_list_handlers() function which is used to return an array with the output buffer handler with the list of handlers as shown in the output.

Code:

<!DOCTYPE html>
<html>
<body>
<?php
print_r(ob_list_handlers());
ob_end_flush();
ob_start("ob_gz_handler");
print_r(ob_list_handlers());
ob_end_flush();
ob_start(function($str_2)
{
return $str_2;
});
print_r(ob_list_handlers());
ob_end_flush();
?>
</body>
</html>

Output:

PHP 输出缓冲

Example #6

This program demonstrates the encoding and decoding of all types of possible codes being defined but if in case something is missing, or the browser is getting some value as wrong then it will return the output as shown.

Code:

<!DOCTYPE html>
<html>
<body>
<pre class="brush:php;toolbar:false">
<?php
iconv_set_encoding("int_encd", "internal_UTF_8");
iconv_set_encoding("o/p_encd", "ISO-8859-1");
var_dump(iconv_get_encoding('all_encd_types'));
?>

Output:

PHP 输出缓冲

Conclusion

PHP output buffering is an efficient way of giving an output to the end-user by keeping the data into a buffer before putting it to the browser it keeps the data on hold and then it assigns a variable to make the reference as it gives programmers the ability to change and manipulate it accordingly for the end-user with proper requirement.

以上是PHP 输出缓冲的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn