2013-06-27 61 views
0

我想知道,如果呼應以下將是一個很好的選擇,使用標題(「位置:index.html的」),而不必使用output_bufferingPHP:標題替代?

echo "<script type='text/javascript>window.location = 'index.html';</script>"; 

有次我想在可能重定向一個正文,上述工作是否正常或值得打開output_buffering選項,只是用戶頭()?

+0

只要用戶不禁用JS,它就會工作。 –

+0

您也可以使用''如果否-JS將成爲問題。 – Timothy

+0

output_buffering是一個'黑客',因爲你的代碼結構不好。 – 2013-06-27 00:36:05

回答

1

header()定義用戶正在查看的頁面。使用輸出緩衝力忽略先前的輸出緩衝區,所以它不被認爲是重定向的有效方式。所以,這裏是我的建議

  1. 如果您唯一的目標是重新,然後確保你沒有一點輸出header語句執行之前。在這種情況下,header是適當的。

  2. 如果您需要顯示您的頁面並根據用戶交互性需要重定向到其他頁面,請使用JavaScript重定向。

0

請記住,使用標題無法輸出到屏幕,否則標題將無法使用,JavaScript版本在JavaScript關閉時不起作用。我個人認爲頭是更安全的選擇,但我認爲這可能歸結於個人意見!

2

只需使用header(),這是正確的方法。

但是你不需要使用輸出緩衝。構建「body」字符串並將其放入一個變量(不要回顯內容)。然後使用標題,如果你必須。並在腳本的最後一行回顯身體變量(如果你沒有重定向頭)

+0

或者使用適當的框架來處理'Request'和'Response'對象。你不應該擔心你自己調用'header'。 – Halcyon

+0

我甚至沒有想到把身體放入一個字符串。讀完每個人的評論後,我將使用標題而不是js。我應該避免在頁面加載後重定向。感謝大家的意見。 – Ralph

0

如果出於某種原因想要避免輸出緩衝,那麼您的想法將起作用。