当前位置:首页 » 编程语言 » phpob

phpob

发布时间: 2022-07-13 17:19:18

1. php ob_start提高多少速度

由于PHP是“一边编译一边执行”的脚本语言,某种程度上也提供了一种相当方便的结果集缓存使用方法—通过动态include相应的数据定义代码段的方式使用缓存。

近来做了一阵子程序性能的优化工作,有个比较有意思的想法,想提出来和大家交流一下。

Cache是“以空间换时间”策略的典型应用模式,是提高系统性能的一种重要方法。缓存的使用在大访问量的情况下能够极大的减少对数据库操作的次数,明显降低系统负荷提高系统性能。相比页面的缓存,结果集是一种“原始数据”不包含格式信息,数据量相对较小,而且可以再进行格式化,所以显得相当灵活。由于PHP是“一边编译一边执行”的脚本语言,某种程度上也提供了一种相当方便的结果集缓存使用方法——通过动态include相应的数据定义代码段的方式使用缓存。如果在“RamDisk”上建缓存的话,效率应该还可以得到进一步的提升。以下是一小段示例代码,供参考。

// load data with cache

function
load_data($id,$cache_lifetime) {

// the return data

$data =
array();

// make cache filename

$cache_filename =
‘cache_‘.$id.‘.php‘;

// check cache file‘s last modify time

$cache_filetime = filemtime($cache_filename);

if (time() -
$cache_filetime <= $cache_lifetime) {

//** the cache is not expire

include($cache_filename);

} else {

//** the cache is
expired

// load data from database

// ...

while
($dbo->nextRecord()) {

// $data[] = ...

}

// format
the data as a php file

$data_cache = "
while (list($key, $val) =
each($data)) {

$data_cache .= "\$data[‘$key‘]=array(‘";

$data_cache .= "‘NAME‘=>\"".qoute($val[‘NAME‘])."\","

$data_cache .= "‘VALUE‘=>\"".qoute($val[‘VALUE‘])."\""

$data_cache .= ";);\r\n";

}

$data_cache = "?>\r\n";

// save the data to the cache file

if ($fd =
fopen($cache_filename,‘w+‘)) {

fputs($fd,$data_cache);

fclose($fd);

}

}

return $data;

}

?> 适用情况:

1.数据相对比较稳定,主要是读取操作。

2.文件操作要比数据库操作快。

3.复杂数据访问,大数据量访问,密集数据访问,系统数据库负载极重。

4.Web/DB分离结构或者多Web单DB结构。

未经证实的问题:

1.并发访问时对文件的读写是否会引起锁定问题。

2.涉及到的数据文件太多时,性能如何。

扩展思路:

1.生成JavaScript数据定义代码,在客户端调用。

2.还未想到……

望共同探讨。

缓存

如果你想要让自己庞大的PHP应用有更好的性能表现,采用缓存也是一种很好的方法。现在已经有许多缓存方案可供选择,其中包括:Zend
Cache,APC,和Afterburner Cache。

所有这些产品都属于“缓存模块”。当第一次出现对.php文件的请求时,它们会在Web服务器内存中保存PHP的中间代码,此后就用“经过编译”的版本响应后继的请求。这种方法确实能够改善应用的性能,因为它使得磁盘访问量减低到了最少的程度(代码已经读取和解析),代码直接在内存中运行使得服务器响应请求的速度大大提高。当然,缓存模块还会监视PHP源文件的变化,必要时重新缓存页面,从而防止了用户得到的页面仍旧由过时的PHP代码生成。由于缓存模块能够明显地降低服务器的负载、提高PHP应用的响应效率,因此它们非常适合于负载较大的网站使用。

如何选择这些缓存产品

Zend Cache是Zend Technologies公司的商业软件,而Zend
Technologies就是前面提到的那个为我们提供PHP引擎和免费Zend Optimizer的公司。Zend
Cache确实是名不虚传!对于大型的PHP页面,你可以感觉到第一次运行之后速度就会有所提高,而且服务器也会有更多的可用资源。遗憾的是这个产品并不免费,不过在有些情形下它仍旧是物超所值。

Afterburner Cache是来自Bware Technologies的免费缓存模块,当前这个产品还是Beta版。Afterburner
Cache的做法看起来与Zend Cache差不多,但它对性能的改善程度(还)不能与Zend Cache相比,而且它还不能与Zend
Optimizer一起工作。

APC是Alternative PHP Cache的缩写,它是来自Community
Connect的又一个免费缓存模块。这个产品已经具有足够的稳定性供正式场合使用,而且它看起来也能在很大程度上提高响应请求的速度。

有关压缩

来自Remote
Communications的免费Apache模块mod_gzip就具有为支持这类内容编码的浏览器压缩静态Web内容的能力。对于绝大多数静态Web内容,mod_gzip都非常有效。mod_gzip可以方便地编译到Apache里面,也可以作为DSO使用。据Remote
communications公司说,mod_gzip也能够压缩来自mod_php、mod_perl等的动态内容。我试了一次又一次,但看来还是不行。我看了许多关于mod_gzip的论坛和文章,看来到了mod_gzip的下一个版本(可能是1.3.14.6f)这个问题有望得到解决。在此之前,我们可以在网站的静态部分使用mod_gzip。

然而有时我们确实蹊要压缩动态内容,所以必须找找其他办法。有一种办法是使用class.gzip_encode.php,这是一个可以用来压缩页面内容的PHP类,具体方法是在PHP脚本的开头和末尾调用该类的某些函数。如果要在网站级实现这个方案,可以从php.ini文件的auto_prepend以及auto_append指令调用这些函数。这种方法虽然有效,但它无疑为高负载的网站带来了更多的开销。关于如何使用这个类的详细说明,请参见它的源代码。它的源代码说明相当完善,作者告诉了你所有你必须知道的事情。

PHP
4.0.4有一个新的输出缓存句柄ob_gzhandler,它与前面的类相似,但用法不同。使用ob_gzhandler时要在php.ini中加入的内容如下:

output_handler = ob_gzhandler
;

这行代码使得PHP激活输出缓存,并压缩它发送出去的所有内容。如果由于某种原因你不想在php.ini中加上这行代码,你还可以通过PHP源文件所在目录的.htaccess文件改变默认的服务器行为(不压缩),语法如下:

php_value
output_handler ob_gzhandler

或者是从PHP代码调用,如下所示:
ob_start("ob_gzhandler");

采用输出缓存句柄的方法确实非常有效,而且不会给服务器带来什么特殊的负荷。但必须注意的是,Netscape
Communicator对压缩图形的支持不佳,因此除非你能够保证所有用户都使用IE浏览器,否则你应该禁止压缩JPEG和GIF图形。一般地,对于所有其他文件,这种压缩都有效,但建议你针对各种浏览器都分别进行测试,特别是当你使用了特殊的插件或者数据查看器时这一点尤其重要。

阅读提示:PEAR 的缓冲包提供了缓冲动态内容,数据库查询和 PHP 函数调用的框架。本文介绍如何采用 PEAR 来缓冲 PHP 程序

采用 PEAR 来缓冲 PHP 程序

PHP 世界中缓冲是一个热门的话题,因为 PHP 产生的动态页面,每次用户请求都需要重新计算,不论请求的结果是否一样,同时,PHP
每次都会编译一次脚本。这样的超负荷运转对一个流量很高的网站来说肯定难以忍受。幸运的是, Web 的结果可以缓冲,而不需要重新运行和编译脚本,商品化的产品像
ZendCache 或者开源的 Alternate PHP Cache都提供了把 PHP 脚本编译为字节代码并缓冲的办法。

PEAR
的缓冲包提供了缓冲动态内容,数据库查询和 PHP 函数调用的框架。

就像 Perl 有 CPAN, TeX 有 CTAN,PHP
也有自己的中心资源库,存放类,库和模块。这个库称为 PEAR(PHP Extension and Add-On
Repository)。

本文假设你已经安装了 PEAR 环境,如果没有的话,可以去 PHP 网站下载。PEAR
的缓冲包包含一个总体的缓冲类和几个特别的子类。缓冲类使用容器类来存贮和管理缓冲数据。

下面是 PEAR
缓冲当前所包含的容器,以及各自的参数:

file -- file 容器在文件系统存储了缓冲的数据,是最快的容器。

cache_dir
-- 这是容器存储文件的目录。

filename_prefix -- 缓冲文件的前缀,例如:"cache_"。

shm -- shm
容器把缓冲数据放入共享内存,基准测试显示,目前的实现下,这个容器的速度要比文件容器慢。

shm_key --
共享内存使用的键值。

shm_perm -- 使用共享内存数据段的权限。

shm_size --
分配共享内存的大小。

sem_key -- 信号灯的键值。

sem_perm -- 信号灯的权限。

db --
PEAR 的数据库抽象层。

dsn -- 数据库连接的 DSN 。可以参考 PEAR 的 DB 文档。

cache_table --
表的名字。

phplib -- phplib
容器使用数据库抽象层存储缓冲。

db_class

db_file

db_path

local_file

local_path

ext/dbx
-- PHP
的数据库抽象层扩展,如果像把缓冲存入数据库,可以采用这个容器。

mole

host

db

username

password

cache_table

persistent

使用
PEAR Cache 所得到的性能提升取决于你所选择的缓冲容器,例如,把数据库的结果再次存入数据库缓冲中就显得毫无意义。

PEAR Cache
的函数缓冲模块能把任何函数或者方法的结果缓冲,不论是 PHP
的内置函数还是用户自定义函数,他缺省采用文件容器,把缓冲数据放入到一个叫做function_cache 的目录。

Cache_Function
类的构造器可以有三个可选的参数:

$container :缓冲容器的名字。

$container_options
:缓冲容器的数组参数。

$expires:缓冲对象过期的时间(秒数)。

普通的函数调用采用 Cache_Function 类的
call() 方法时,就能触发缓冲。调用 call()
很容易,的一个参数是函数的名字,然后是函数的参数,第二个参数是要调用函数中的第一个,依此类推,我们来看例子:

例1
缓冲函数和方法的调用
// 调用 PEAR Cache 的函数缓冲。

require_once
'Cache/Function.php';

// 定义一些类和函数。

class foo {

function
bar($test) {

echo
"foo::bar($test)

";

}

}

class bar {

function
foobar($object) {

echo
'$'.$object.'->foobar('.$object.')

';

}

}

$bar =
new bar;

function foobar() {

echo 'foobar()';

}

//
取得 Cache_Function 对象

$cache = new Cache_Function();

// 对 foo
类的静态函数 bar() 作缓冲(foo::bar())。

$cache->call('foo::bar',
'test');

// $bar->foobar()

$cache->call('bar->foobar',
'bar');

$cache->call('foobar');

?>

下面我们采用
Cache_Output 来把输出作缓冲:

例2 缓冲脚本的输出

// 加载 PEAR
Cache 的输出缓冲

require_once 'Cache/Output.php';

$cache = new
Cache_Output('file', array('cache_dir' => '.') );

//
计算要缓冲页面的标记,我们假定页面的缓冲取决于

// URL, HTTP GET 和 POST 变量以及
cookies。

$cache_id = $cache->generateID(

array('url' =>
$REQUEST_URI, '

post' => $HTTP_POST_VARS, 'cookies' =>
$HTTP_COOKIE_VARS) );

// 查询缓冲

if ($content =
$cache->start($cache_id)) {

// 缓冲命中

echo
$content;

die();

}

// 缓冲丢失

// -- 在这里插入内容产生代码
--

// 把页面存入缓冲

echo $cache->end();

?>
利用 Cache_Output 类,很容易把一个动态的数据库驱动的网站应用转化为静态,从而极大的提升站点的性能。越来越多的站点在采用 GZIP 压缩
HTML 内容,这样减少了服务器的带宽消耗,对于使用 Modem 上网的用户来说也能受益不少。

Cache_OutputCompression
扩展了 Cache_Output 类的功能,他把 GZIP 压缩的 HTML 内容进行缓冲,从而节省了 CPU 压缩的时间。

阅读提示:在本篇文章中,我们将对PHP应用程序的分析、如何改变脚本代码以及比较优化前后的各种参数值进行简要的介绍。

PHP应用程序的性能优化

使用PHP编程的最大好处是学习这种编程语言非常容易以及其丰富的库。即使对需要使用的函数不是十分了解,我们也能够猜测出如何完成一个特定的任务。

尽管PHP非常简单易学,但我们仍然需要花费一点时间来学习PHP的一些编程技巧,尤其是与性能和内存占用相关的技巧。在PHP中,有许多小技巧能够使我们减少内存的占用,并提高应用程序的性能。在本篇文章中,我们将对PHP应用程序的分析、如何改变脚本代码以及比较优化前后的各种参数值进行简要的介绍。

通过在程序中设置计时的程序,并反复执行这些代码,我们可以获得有关程序执行速度的一组数据,这些数据可以可以用来发现程序中的瓶颈,以及如何进行优化,提高应用程序的性能。

也许读者曾经听说过PEAR库吧。我们将使用PEAR库创建在分析时需要使用的例子,这也是对现有的代码进行分析的最简单的方法,它使我们无需使用商用产品就能对代码进行分析。

我们要使用的库的名字是PEAR::Benchmark,它对于对代码进行分析和性能测试非常有用。这个库提供一个名字为Benchmark_Timer()的类,能够记录一个函数调用和下一个函数调用之间的时间。在对代码的性能进行测试时,我们可以得到一个详细的脚本执行结果,它非常简单,如下所示:
include_once("Benchmark/Timer.php");

$bench
= new Benchmark_Timer;

$bench-> start();

$bench->
setMarker('Start of the script');

//
现在处于睡眠状态几分钟

sleep(5);

$bench-> stop();

//
从计时器中获得分析信息

print_r($bench->
getProfiling());

?>

上面代码执行后的输出如下所示:

Array

(

[0] => Array

(

[name] =>
Start

[time] => 1013214253.05751200

[diff] =>
-

[total] => 0

)

[1] =>
Array

(

[name] => Start of the script

[time] =>
1013214253.05761100

[diff] => 9.8943710327148E-05

[total]
=> 9.8943710327148E-05

)

[2] =>
Array

(

[name] => Stop

[time] =>
1013214258.04920700

[diff] => 4.9915959835052

[total] =>
4.9916949272156

)

)

上面的数字似乎是一组杂乱无章的数字,但如果程序的规模更大,这些数字就十分地有用了。

也许广大读者也能猜测到,数组的第一个表目是实际调用Benchmark_Timer()类的方法,例如

$bench->
start()、$bench-> setMarker()和$bench->
stop(),与这些表目有关的数字是相当简单的,现在我们来仔细地研究这些数字:

[0] => Array

(

[name] => Start

[time] => 1013214253.05751200

[diff] => -

[total] => 0

)

time表目指的是何时对Benchmark_Timer()的start()方法调用的UNIX的timestamp,diff表目表示这次调用和上次调用之间的时间间隔,由于这里没有上一次,因此显示出了一个破折号,total表目指的是自测试开始到这一特定的调用之前代码运行的总的时间。下面我们来看看下一个数组的输出:

[1]
=> Array

(

[name] => Start of the script

[time] => 1013214253.05761100

[diff] =>
9.8943710327148E-05

[total] => 9.8943710327148E-05

)
从上面的数字我们可以看出,在调用$bench->
start()之后,程序运行了9.8943710327148E-05秒(也就是0.0000989秒)后开始调用$bench->
setMarker(....)。

一次真实的性能测试经历

尽管上面的例子不错,但在对于决定如何优化你的站点代码设计方面,它真的不能算是一个好例子。下面我将用我自己作为网站技术人员的一段亲身经历来说明如何解决性能方面存在的问题。

我并不大理解网站使用的代码,因为它是根据特殊的需求,历经多年开发而成的━━其中的一个模块包括网站转换代码,另一个模块记录网站的使用情况,其他的模块也各有各的作用。我和网站的主要开发者都意识到网站的代码需要优化,但又不清楚问题出在哪儿。

为了尽快地完成任务,我开始研究网站的主要脚本代码,并在全部脚本代码以及其包含文件中添加了一些$bench->
setMarker()命令,然后分析$bench->
getProfiling()的输出,并对得到的结果大吃一惊,原来问题出在一个与获得特定语言名字(例如en代表english)的转换代码的函数调用中,该函数在每个页面上都会被使用数百次。每次调用该函数时,脚本代码都会对一个Mysql数据库进行查询,从一个数据库表中获得真正的语言名字。

于是我们这一类的信息创建了一个缓冲系统。经过短短2天时间的工作,我们使系统的性能得到了很大的提高,第一周内页面的浏览量也因此而增加了40%。当然了,这只是一个有关分析代码能够提高互联网应用或互联网网站性能的例子。

性能测试函数调用

在分析一个脚本或网页(以及其包含文件)时,尽管Benchmark_Timer()特别有用,但它并不科学,因为要获得分析的数据我们必须多次加载脚本,而且它也不是针对某个类或函数调用的。

PEAR::Benchmark库中的另一个被称作Benchmark_Iterator的类能够很好地解决这一个问题,它能够针对特定的函数或类的方法,显示其分析信息。它的用途是能够能够从测试中获得一致的结果,因为我们知道,如果运行一段脚本一次,其运行时间为10秒,并不意味着它每次的运行时间总是10秒。
In
any case, let's see some examples:

//
连接数据库的代码

include_once("DB.php");

$dsn = array(

'phptype'
=> 'mysql',

'hostspec' => 'localhost',

'database'
=> 'database_name',

'username' =>
'user_name',

'password' => 'password'

);

$dbh =
DB::connect($dsn);

function getCreatedDate($id)

{

global
$dbh;

> $stmt = "SELECT created_date FROM users WHERE
id=$id";

// 在这里使用PEAR::DB

$created_date = $dbh->
getOne($stmt);

if ((PEAR::isError($created_date)) ||

(empty($created_date))) {

return false;

} else
{

return $created_date;

}

}

include_once
'Benchmark/Iterate.php';

$bench = new Benchmark_Iterate;

//
运行getDate函数10次

$bench-> run(10, 'getCreatedDate', 1);

//
打印分析信息

print_r($bench-> get());

?> 运行上面的代码能够产生与下面相似的结果:

Array

(

[1] => 0.055413007736206

[2] =>
0.0012860298156738

[3] => 0.0010279417037964

[4] =>
0.00093603134155273

[5] => 0.00094103813171387

[6] =>
0.00092899799346924

[7] => 0.0010659694671631

[8] =>
0.00096404552459717

[9] => 0.0010690689086914

[10] =>
0.00093603134155273

[mean] => 0.0064568161964417

[iterations]
=> 10

)
上面的这些数字很好理解,mean条目表示getCreatedDate()函数10次运行的平均时间。在进行实际测试时,应该至少运行1000次,但这个例子得出的结果已经足够说明问题了。

2. PHP中ob_start是什么功能

ob是output buffering的简称,就是输出缓冲区。如果使用了ob_start函数,那么之后的输出内容(echo等)就不进行实际输出,而是存入缓冲区里面,随后可以使用ob_flush实际输出、ob_clean删除、ob_get_contents获得内容保存到静态文件等。

使用输出缓冲区有两个主要的好处:一是可以在输出一些内容之后在设置header(例如cookie等),使得程序设计的逻辑性变得简单;二是可以对缓冲区里面的输出内容撤销、删除、压缩、保存到文件等操作。

相关的操作是使用一系列的ob_函数来实现的,常用的有下面这些,通过函数名称可以猜测其功能,需要获得详细帮助可以查看文档或者网络搜索:
ob_clean — Clean (erase) the output buffer
ob_end_clean — Clean (erase) the output buffer and turn off output buffering
ob_end_flush — Flush (send) the output buffer and turn off output buffering
ob_flush — Flush (send) the output buffer
ob_get_clean — Get current buffer contents and delete current output buffer
ob_get_contents — Return the contents of the output buffer
ob_get_flush — Flush the output buffer, return it as a string and turn off output buffering
ob_get_length — Return the length of the output buffer
ob_get_level — Return the nesting level of the output buffering mechanism
ob_get_status — Get status of output buffers
ob_gzhandler — ob_start callback function to gzip output buffer
ob_implicit_flush — Turn implicit flush on/off
ob_list_handlers — List all output handlers in use
ob_start — Turn on output buffering
output_add_rewrite_var — Add URL rewriter values
output_reset_rewrite_vars — Reset URL rewriter values

3. php中 ob_start()有什么作用呢

<?php
ob_start();//开启缓冲区
echo "这是第一次输出内容!\n";
$ff[1] = ob_get_contents() ; //获取当前缓冲区内容
ob_flush();//缓冲器清除
echo "这是第二次输出内容!\n";
$ff[2] = ob_get_contents() ; //获取当前缓冲区内容
echo "这是第三次输出内容!\n";
$ff[3] = ob_get_contents() ; //获取当前缓冲区内容

echo "<pre>";
print_r($ff);
//明白怎么用了吧~ 这些函数一般是用来获取 页面的执行结果的,可以用来作缓存 或者 Ajax 调试时的追踪
//请采纳~ 谢谢
?>

4. 在PHP页面的顶端增加语句ob_start();的作用是什么

您好,ob_start();
....
ob_clean();
这两句中间的任意输出,都可以用ob_get_contents();来获取而不输出到浏览器.
经典应用:将phpinfo()的信息写到文件里.
ob_start();
phpinfo();
$phpinfo = ob_get_contents();
//文件读写操作
ob_clean();

其实ob是output buffering的简称,而不是output cache,ob用对了,是能对速度有一定的帮助,但是盲目的加上ob函数,只会增加CPU额外的负担。下面我说说ob的基本作用。
1.防止在浏览器有输出之后再使用setcookie,或者header,session_start函数造成的错误。(我本以为最开始说的代码是这样的作用,但后来朋友说不是的),其实这样的用法少用为好,养成良好的代码习惯。
2.捕捉对一些不可获取的函数的输出,比如phpinfo会输出一大堆的HTML,但是我们无法用一个变量例如$info=phpinfo();来捕捉,这时候ob就管用了
3.对输出的内容进行处理,例如进行gzip压缩,例如进行简繁转换,例如进行一些字符串替换。
4.生成静态文件,其实就是捕捉整页的输出,然后存成文件,经常在生成HTML,或者整页缓存中使用。
对于刚才说的第三点中的GZIP压缩,可能是很多人想用,却没有真真用上的,其实稍稍修改下我朋友的代码,就可以实现页面的gzip压缩。

5. php ob首页静态化

ob_start();//启动输出缓存

//dosomething

$cache=ob_get_clean();//取得自启动以来的输出缓存并删除缓存
file_put_contents('index.html',$cache);//将缓存的内容写入到文件中

访问index.html就可以输出上述代码本该输出的内容了~~~~

而要加个控制是否生成缓存,只需要弄个变量做个标记即可~~~

$staticStatus=true;
ob_start();

//dosomething

$cache=ob_get_content();
ob_clean();//两个合起来的功能跟ob_get_clean一样
if($staticStatus)
{
file_put_contents('index.html',$cache);
}

6. php页面里ob_start() 开启缓存 打开速度就会变快么

ob_start — 打开输出控制缓冲
此函数将打开输出缓冲。当输出缓冲激活后,脚本将不会输出内容(除http标头外),相反需要输出的内容被存储在内部缓冲区中。

内部缓冲区的内容可以用 ob_get_contents() 函数复制到一个字符串变量中。
想要输出存储在内部缓冲区中的内容,可以使用 ob_end_flush() 函数。另外,
使用 ob_end_clean() 函数会静默丢弃掉缓冲区的内容。

-----------------------
直接使用缓存,不再重新渲染生成html,当然会变快。

7. php框架中的初始文件一般会判断用ob_start('ob_gzhandler')还是ob_start(),那ob_end_clean在哪里呢

开始的时候用ob_start、ob_start('ob_gzhandler')都可以,后者能压缩输出内容,效果是浪费一点服务器的CPU、节省网络流量。
ob_end_clean一般都不用,功能是清除缓冲区并关闭缓冲功能,相当于数据库的rollback。
刷新输出缓冲区的语句可以不用,程序运行完毕会自动刷新输出。
再看看别人怎么说的。

8. php用ob系列生成html静态页面如何进行内容分页

具体不知道你是怎么个生成静态页面法,是用户访问一页生成一页,还是事先在后台手动生成所有页,不过静态页面分无非两种思路,一个就是用JS来实现虚分页,这种方法就是将需分页显示的所有页内容都生成在一个静态页面内,然后用JS来控制特定DIV或LI等标签来现实分页,另一种就是PHP实现的硬分页,就是在生成页面时将所有内容通过PHP解析处理后都取出放在一个数组A内,如A[0]的内容就是第一页,A[1]就是第二页的内容,如此形式,然后再循环生成这些页,记得自己还要造构一个分页条,类似 [1] [2] [3] ... 分别关联到具体页面,如test0.html,test1.html,test2.html...如此形式就行了.不知道各位还有没其他更好的办法?

9. php 中ob_start()是用来做什么的有什么用啊举个具体的例子

控制缓冲区

ob_start(); //开启缓冲

echo '输出内容'; // “输出内容”暂不会打印,而是放入缓冲。

然后可以通过其他的函数来处理缓冲区内容。例如
ob_get_contents获取缓冲区内容
ob_clean清空缓冲区
ob_end_clean清空缓冲区,同时关闭缓冲区。
等等。。。

10. php中“ ob_start()”有什么作用呢

开启缓冲区,缓冲器清除。

热点内容
路由器和远程访问 发布:2024-05-13 19:49:44 浏览:212
ftp五个转换步骤是什么 发布:2024-05-13 19:45:15 浏览:833
页面显示源码 发布:2024-05-13 19:27:42 浏览:740
视频站配什么服务器 发布:2024-05-13 19:12:48 浏览:465
mc驱动编译教学 发布:2024-05-13 19:11:12 浏览:439
r9s怎么关闭应用加密 发布:2024-05-13 19:02:57 浏览:534
末并的算法 发布:2024-05-13 18:38:03 浏览:406
java入门视频教学 发布:2024-05-13 18:37:48 浏览:449
技术员加密锁 发布:2024-05-13 18:09:03 浏览:197
安卓系统如何调成维修模式 发布:2024-05-13 17:14:31 浏览:232