Heim > Backend-Entwicklung > PHP-Tutorial > php ob_start()函数实现当前页面内容缓存输出_PHP教程

php ob_start()函数实现当前页面内容缓存输出_PHP教程

WBOY
Freigeben: 2016-07-13 10:49:10
Original
1005 Leute haben es durchsucht

页面缓存就是把页面保存到一个文件中,下次读出时直接调用文件而不查询数据库,这里我们介绍利用ob_start()来实现。


 代码如下 复制代码

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
//或直接用 file_put_content('info.txt',$info);
?>

以上的方法,可以把不同用户的phpinfo信息保存下来。

这里我们可以着重看看这个方法的使用技巧,用这个方法可以实现生成静态页面的便利!

并且用这个方法比用file_get_conents()的方法更合理更有效率。

简单的说个应用吧,比如想要把phpinfo()的内容写入文件,可以这样做:

 代码如下 复制代码

ob_start();
$phpinfo = phpinfo();
//写入文件
ob_end_flush();

或者还有这样的用途:

ob_start(); //打开缓冲区
echo "Hellon"; //输出
header("location:index.php"); //把浏览器重定向到index.php
ob_end_flush();//输出全部内容到浏览器

header()会发送一段文件头给浏览器,但是如果在header()之前已经有了任何输出(包括空输出,比如空格,回车和换行)就会报错。但是如果输出在ob_start()和ob_end_flush()之间,就会没有问题。因为在输出前打开了缓冲区,echo后面的字符就不会输出到浏览器,而是保留在服务器,知道使用flush才会输出,所以header()会正常执行。

当然,ob_start()还可以有参数,参数就是一个回调函数。例子如下:

 代码如下 复制代码

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
? >


It's like comparing apples to oranges.




ob_end_flush();
? >

以上程序会输出:



It's like comparing oranges to oranges. p>

至于更多的,就去官网的手册里看吧。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632725.htmlTechArticle页面缓存就是把页面保存到一个文件中,下次读出时直接调用文件而不查询数据库,这里我们介绍利用ob_start()来实现。 例 代码如下 复制代...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage