首页 > 代码库 > PHP在程序处理过程中动态输出内容

PHP在程序处理过程中动态输出内容

在安装discuz或其他一些开源产品的时候,在安装数据库时页面上的安装信息都是动态输出出来的,主要通过php两个函数来实现的,

flush();ob_flush();

代码如下

<html xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"><title>Discuz! 安装向导</title><style type="text/css">body{ padding:5px 0; background:#FFF; text-align:center; }body, td, input, textarea, select, button{ color:#666; font:12px/1.5 Verdana, Tahoma, Arial, ‘Microsoft Yahei‘, ‘Simsun‘, sans-serif; }.container{ overflow:hidden; margin:0 auto; width:700px; height:auto !important;text-align:left; border:1px solid #B5CFD9; }.main{ padding:20px 20px 0; background:#F7FBFE url(bg_repx.gif) repeat-x 0 -194px; }    .main h3{ margin:10px auto; width:75%; color:#6CA1B4; font-weight:700; }#notice { overflow: hidden; margin: 20px; padding: 5px; height: 300px; border: 1px solid #B5CFD9; text-align: left; }</style><meta name="Copyright" content="Comsenz Inc."></head><body><div><div><script type="text/javascript">function showmessage(message) {    document.getElementById(‘notice‘).innerHTML += message + ‘<br/>‘;    document.getElementById(‘notice‘).scrollTop = 100000000;}</script>        <div id="notice"></div><?php//检测完成后显示的信息function showjsmessage($message) {    echo ‘<script type="text/javascript">showmessage(\‘‘.addslashes($message).‘ \‘);</script>‘."\r\n";    flush();    ob_flush();} //模拟初始化数据表for ($i = 1; $i <= 50; $i++) {    showjsmessage("建立数据表 {$i} ... 成功");    sleep(rand(0, 1));} ?></div></div></body></html>

测试的结果是,在apache下是可以的,在Nginx下不行。

PHP在程序处理过程中动态输出内容