下面3个函数的用法
ob_get_contents() - 返回输出缓冲区的内容 ob_flush() - 冲刷出(送出)输出缓冲区中的内容 ob_clean() - 清空(擦掉)输出缓冲区 ob_end_flush() - 冲刷出(送出)输出缓冲区内容并关闭缓冲 ob_end_clean() - 清空(擦除)缓冲区并关闭输出缓冲 flush() - 刷新输出缓冲
通常是ob_flush();flush()同时一起使用
使用ob_start()把输出那同输出到缓冲区,而不是到浏览器。
然后用ob_get_contents得到缓冲区的数据。
函数ob_end_clean 会清除缓冲区的内容,并将缓冲区关闭,但不会输出内容。
此时得用一个函数ob_get_contents()在ob_end_clean()前面来获得缓冲区的内容。
这样的话, 能将在执行ob_end_clean()前把内容保存到一个变量中,然后在ob_end_clean()后面对这个变量做操作。
php生成静态html实例
<?php ob_start();?>
<?php ob_implicit_flush(false);?>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">友情连接</h3>
</div>
<div class="panel-body">
<?php $topUserMenus=Menu::model()->findAllByAttributes(array('status'=>BasicModel::STATUS_NORMAL,'parent_id'=>Menu::MENU_TYPE_6),
array('select'=>array('id','name','url','url2','content'),'limit'=>20,'order'=>'sort'));?>
<?php foreach ($topUserMenus as $topUserMenu):?>
<a target="_blank" href="<?php echo $topUserMenu->url;?>" class="btn btn-sm btn-default"><?php echo $topUserMenu->name;?></a>
<?php endforeach;?>
</div>
</div>
<?php $html_tr = ob_get_clean();?>
<?php
$base_path = Yii::app ()->basePath;
file_put_contents ( $base_path . '/views/_static/_youqing.html', $html_tr );
?>效果如图:
