国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php輸出控制的學習筆記

2024-05-04 21:54:23
字體:
來源:轉載
供稿:網友

   1、簡介

  當PHP腳本有輸出時,輸出控制函數可以用這些來控制輸出。這在多種不同情況中非常有用,尤其是用來在腳本開始輸出 數據后,發送http頭信息到瀏覽器。輸出控制函數不影響由 header()或setcookie()發送的文件頭信息,僅影響像echo這樣的函數和PHP代碼塊間的數據。

  2、作用

  1)、如官方介紹說,為了避免在輸出文件頭信息如header()和setcookie()之前出現輸出而發生的錯誤??梢允褂幂敵鼍彺婧瘮?。如下代碼

  2)、將輸出內容放入緩存區,如需進行其他操作,如將輸出寫入緩存文件,可將緩沖區內容寫入緩存文件,然后輸出。

  3)、獲取某些無返回值內置函數的輸出內容,如phpinnfo();

  4)、在使用框架的時候,我們會發現框架中會將輸出緩沖然后進行變量替換。最后輸出。

  除了這些內容,我們還可以利用輸出緩存進行錯誤處理,具體看代碼。我們可以將錯誤信息獲取,以更加友好的方式輸出。

  附:ob_start()官方解釋:

  bool ob_start ([ callback $output_callback [, int $chunk_size [, bool $erase ]]] )

  此函數將打開輸出緩沖。當輸出緩沖激活后,腳本將不會輸出內容(除http標頭外),相反需要輸出的內容被存儲在內部緩沖區中。

  內部緩沖區的內容可以用 ob_get_contents() 函數復制到一個字符串變量中。 想要輸出存儲在內部緩沖區中的內容,可以使用 ob_end_flush() 函數。另外, 使用 ob_end_clean() 函數會靜默丟棄掉緩沖區的內容。

  output_callback

  可選參數 output_callback 函數可以被指定。 此函數把一個字符串當作參數并返回一個字符串。 當輸出緩沖區被( ob_flush(), ob_clean() 或者相似的函數)沖刷(送出)或者被清洗的時候;或者在請求結束之際輸出緩沖區內容被沖刷到瀏覽器的時候該函數將會被調用。 當調用 output_callback 時,它將收到輸出緩沖區的內容作為參數 并預期返回一個新的輸出緩沖區作為結果,這個新返回的輸出緩沖區內容將被送到瀏覽器。 如果這個 output_callback 不是一個可以調用的函數,此函數 會返回 FALSE 。

  如果回調函數有兩個參數,第二個參數會由一個位域補充,該位域由 PHP_OUTPUT_HANDLER_START, PHP_OUTPUT_HANDLER_CONT 和 PHP_OUTPUT_HANDLER_END 組成。

  如果 output_callback 返回 FALSE ,其原來的輸入 內容被直接送到瀏覽器。

  這個參數 output_callback 可以通過直接給一個 NULL 值而避開。

  ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() and ob_start() 不能從一個回調函數中調用。 如果從回調函數中調用了它們,產生的行為是不明確的。 如果想要刪除緩沖區的內容,從回調函數中返回一個”" (空字符串)。 更不能從一個回調函數中使用像print_r($expression, true) 或highlight_file($filename, true) 一樣的輸出緩沖函數。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂林市| 宜春市| 广丰县| 逊克县| 清原| 萨嘎县| 明溪县| 云龙县| 顺平县| 齐河县| 漯河市| 湛江市| 汨罗市| 平江县| 连江县| 桐城市| 榆林市| 苍梧县| 开鲁县| 西宁市| 固镇县| 龙里县| 平和县| 佛坪县| 锦州市| 贵港市| 铁岭县| 上饶县| 天台县| 青州市| 黄梅县| 洛阳市| 邵武市| 阳城县| 贺兰县| 湄潭县| 南城县| 繁昌县| 茶陵县| 宜昌市| 中山市|