程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP嵌套輸出緩沖代碼實例

PHP嵌套輸出緩沖代碼實例

編輯:關於PHP編程

       這篇文章主要介紹了PHP嵌套輸出緩沖代碼實例,本文講解嵌套使用ob系列函數的實例,需要的朋友可以參考下

      PHP的輸出緩存是可以嵌套的。用ob_get_level()就可以輸出嵌套級別。

      測試發現在cli和浏覽器下輸出結果不一樣(PHP5.4)。

      手冊說明如下:

      ob_get_level() will always return 0 inside a destructor.

      This happens because the garbage collection for output buffers has already done before the destructor is called

      想要正確輸出也很簡單:

       代碼如下:

      ob_end_clean();

      echo ob_get_level(); //0

      回到正題:

       代碼如下:

      ob_end_clean();

      ob_start();

      echo 'php1';//此處並不會在頁面中輸出

      $a = ob_get_level();

      $b = ob_get_contents();//獲得緩存結果,賦予變量

      ob_clean();

      ob_start();

      echo 'php2';//此處並不會在頁面中輸出

      $c = ob_get_level();

      $d = ob_get_contents();//獲得緩存結果,賦予變量

      ob_clean();

      ob_start();

      echo 'php3';//此處並不會在頁面中輸出

      $e = ob_get_level();

      $f = ob_get_contents();//獲得緩存結果,賦予變量

      ob_clean();

      echo 'level:'.$a.',ouput:'.$b.'
    ';

      echo 'level:'.$c.',ouput:'.$d.'
    ';

      echo 'level:'.$e.',ouput:'.$f.'
    ';

      結果如下:

       代碼如下:

      level:1,ouput:php1

      level:2,ouput:php2

      level:3,ouput:php3

      當然,當你關閉某個級別的緩沖,如下測試:

      代碼如下:

      ob_end_clean();

      ob_start();

      echo 'php1';

      $a = ob_get_level();

      $b = ob_get_contents();

      ob_clean();

      ob_start();

      echo 'php2';

      $c = ob_get_level();

      $d = ob_get_contents();

      ob_end_clean(); //清空緩存並關閉緩存

      ob_start();

      echo 'php3';

      $e = ob_get_level();

      $f = ob_get_contents();

      ob_clean();

      echo 'level:'.$a.',ouput:'.$b.'
    ';

      echo 'level:'.$c.',ouput:'.$d.'
    ';

      echo 'level:'.$e.',ouput:'.$f.'
    ';

      結果如下:

      代碼如下:

      level:1,ouput:php1

      level:2,ouput:php2

      level:2,ouput:php3

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved