PHP擴(kuò)展之輸出緩沖控制
當(dāng)PHP腳本有輸出時(shí),輸出控制函數(shù)可以用這些來(lái)控制輸出。這在多種不同情況中非常有用,尤其是用來(lái)在腳本開(kāi)始輸出 數(shù)據(jù)后,發(fā)送http頭信息到瀏覽器。輸出控制函數(shù)不影響由 header() 或 setcookie()發(fā)送的文件頭信息,僅影響像 echo這樣的函數(shù)和PHP代碼塊間的數(shù)據(jù)。
注意:
由于早先的版本的缺陷,當(dāng)從PHP4.1.x(4.2.x,4.3.x)升級(jí)時(shí),必須保證php.ini中的implicit_flush 是 OFF, 否則任何用 ob_start()的輸出將在輸出中隱藏掉。
基本用法<?php ob_start(); echo 'Hellon'; setcookie('cookiename', 'cookiedata'); ob_end_flush();?>
在上面的例子中, echo函數(shù)的輸出將一直被保存在輸出緩沖區(qū)中直到調(diào)用 ob_end_flush() 。同時(shí),對(duì) setcookie()的調(diào)用也成功存儲(chǔ)了一個(gè)cookie,而不會(huì)引起錯(cuò)誤。(正常情況下,在數(shù)據(jù)被發(fā)送到瀏覽器后,就不能再發(fā)送http頭信息了。)
輸出控制函數(shù)flush — 刷新輸出緩沖ob_clean — 清空(擦掉)輸出緩沖區(qū)ob_end_clean — 清空(擦除)緩沖區(qū)并關(guān)閉輸出緩沖ob_end_flush — 沖刷出(送出)輸出緩沖區(qū)內(nèi)容并關(guān)閉緩沖ob_flush — 沖刷出(送出)輸出緩沖區(qū)中的內(nèi)容ob_get_clean — 得到當(dāng)前緩沖區(qū)的內(nèi)容并刪除當(dāng)前輸出緩。ob_get_contents — 返回輸出緩沖區(qū)的內(nèi)容ob_get_flush — 刷出(送出)緩沖區(qū)內(nèi)容,以字符串形式返回內(nèi)容,并關(guān)閉輸出緩沖區(qū)。ob_get_length — 返回輸出緩沖區(qū)內(nèi)容的長(zhǎng)度ob_get_level — 返回輸出緩沖機(jī)制的嵌套級(jí)別ob_get_status — 得到所有輸出緩沖區(qū)的狀態(tài)ob_gzhandler — 在ob_start中使用的用來(lái)壓縮輸出緩沖區(qū)中內(nèi)容的回調(diào)函數(shù)。ob_implicit_flush — 打開(kāi)/關(guān)閉絕對(duì)刷送ob_list_handlers — 列出所有使用中的輸出處理程序。ob_start — 打開(kāi)輸出控制緩沖output_add_rewrite_var — 添加URL重寫器的值(Add URL rewriter values)output_reset_rewrite_vars — 重設(shè)URL重寫器的值(Reset URL rewriter values)相關(guān)文章:
1. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法2. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲3. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明4. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向7. asp中response.write("中文")或者js中文亂碼問(wèn)題8. PHP設(shè)計(jì)模式中工廠模式深入詳解9. CSS hack用法案例詳解10. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法
