亚洲欧美日韩综合系列在线_91精品人妻一区二区_欧美大肥婆一级特大AA片_九色91视频免费观看_亚洲综合国产精品_av中文字幕在线不卡_久久精品色综合网_看黄色视频的软件_无卡无码高清中文字幕码2024_亚洲欧美日韩天堂网

php使用ob_flush不能每隔一秒輸出原理分析_php技巧

來(lái)源:轉(zhuǎn)載 發(fā)布時(shí)間:2018-12-04 16:05:58 閱讀量:955

本文實(shí)例講述了php使用ob_flush不能每隔一秒輸出原理。分享給大家供大家參考。具體分析如下:

實(shí)現(xiàn)功能:

瀏覽器每隔一秒輸出一個(gè)數(shù)字。

php.ini配置為:

版本5.3

implicit_flush = off
output_buffering = off

另:查看output_buffering是否打開(kāi),可以:

復(fù)制代碼 代碼如下:
var_dump(ini_get('output_buffering'));

好我們?cè)賮?lái)看看這段代碼:

1

2

3

4

5

6

7

8

9

10

11

<?php

  $i = 3;

  ob_start();

  while ($i--) {

    echo $i, "<br>";

    ob_flush();

    flush();

    sleep(1);

  }

  ob_end_clean();

?>

可為什么:這段代碼不能每隔一秒輸出呢??

原因分析:

apache運(yùn)行原理:當(dāng)你訪問(wèn)一個(gè)地址(發(fā)送請(qǐng)求)后,apache啟動(dòng)PHP,那么php執(zhí)行是頁(yè)面級(jí)的,即如果有可執(zhí)行的代碼:它全部執(zhí)行完后再丟給apache,apache再丟給browser顯示結(jié)果

如何實(shí)現(xiàn)?

如果是cli 顯示結(jié)果方式又不一樣,那里不一樣呢?

linux cmd:

php5 test.php

由php直接執(zhí)行,不經(jīng)過(guò)apache,web service,就可以實(shí)現(xiàn):

1

2

3

4

5

6

7

8

<?php

  $i = 3;

  while ($i--) {

    echo $i, "\n";

    sleep(1);

  }

  ob_end_clean();

?>

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。


標(biāo)簽: PHP
分享:
評(píng)論:
你還沒(méi)有登錄,請(qǐng)先