下面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 ); ?>
效果如图: