php緩衝區與header函式之間的秘密

2021-07-13 05:00:25 字數 1226 閱讀 4572

我們在實際的開發中,是否聽說過在header之前不能有任何的實際輸出。甚至有的認為header函式必須寫在**的最前面。可是你是否試驗過header函式之前輸出東西?下來讓我們更深層次的了解一下

<?php 

echo

'hello world!';

header('content-type: text/html;charset=utf-8;');

我經過測試時可以成功的,不會出現任何錯誤和警告。不知道你們是怎麼樣的?可是我想大多說都是沒有問題,如果出現了cannot modify header information - headers already sent這樣的警告,這是是說不能修改頭部資訊,頭部資訊已經傳送。下來就了解一下為什麼會出現兩種不同結果?

函式解釋

ob_start

開啟輸出緩衝區

ob_clean

清空緩衝區

ob_get_contents

返回緩衝區內容

ob_get_clean

返回緩衝區內容,並清空

<?php 

ob_start();

echo

'hello world!';

echo ob_get_contents();//輸出hello world!hello world!

一般在233行左右,預設是4096表示4096位元組也就是4kb

下來將4096修改為5,重新執行這段**

<?php 

echo

'hello world!';

header('content-type: text/html;charset=utf-8;');

對於剛才測試不會出現警告或錯誤的現在卻出現了,錯誤就是:cannot modify header information - headers already sent

在實際當中,我們最好還是把header寫在頁面最前面。因為我們就不確定我們header之前的輸出內容是否緩衝區能放下。

php緩衝區與header函式之間的秘密

我們在實際的開發中,是否聽說過在header之前不能有任何的實際輸出。甚至有的認為header函式必須寫在 的最前面。可是你是否試驗過header函式之前輸出東西?下來讓我們更深層次的了解一下 測試header之前有輸出 ob start echo hello world echo ob get c...

php緩衝區與header函式之間的秘密

我們在實際的開發中,是否聽說過在header之前不能有任何的實際輸出。甚至有的認為header函式必須寫在 的最前面。可是你是否試驗過header函式之前輸出東西?下來讓我們更深層次的了解一下 echo hello world header content type text html charse...

php 緩衝區,PHP的輸出緩衝區

1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...