我該如何在PHP中執行此操作?代碼轉換:PHP中的ASP.NET Server.Transfer
Server.Transfer("/index.aspx")
(加 ';' 爲C#)
編輯:
有URL是很重要的保持和以前一樣;你知道,谷歌。在我的情況下,我們有一堆我們想要傳輸的.html文件,地址欄不改變對客戶端來說很重要。
我該如何在PHP中執行此操作?代碼轉換:PHP中的ASP.NET Server.Transfer
Server.Transfer("/index.aspx")
(加 ';' 爲C#)
編輯:
有URL是很重要的保持和以前一樣;你知道,谷歌。在我的情況下,我們有一堆我們想要傳輸的.html文件,地址欄不改變對客戶端來說很重要。
據我所知,PHP沒有一個真正的傳輸能力,但你可以通過使用包括(得到完全相同的效果)或要求()像這樣:
require('/index.aspx");
最簡單的方法是使用header
重定向。
header('Location: /index.php');
編輯: 或者你可以只包括文件並退出,如果你不想使用HTTP頭。
使用需要將與server.transfer類似,但在某些情況下它的行爲會稍有不同。例如,當輸出已經發送到瀏覽器並且使用了require時,已經發送到瀏覽器的輸出將顯示以及所需的路徑。
模仿C#/ ASP.NET Server.Transfer()的最佳方式是正確設置PHP輸出緩衝,然後使用我寫的以下函數。
function serverTransfer($path) {
if (ob_get_length() > 0) {
ob_end_clean();
}
require_once($path);
exit;
}
設置輸出緩衝是使用ob_start()由PHP應用程序稱爲第一線一樣簡單。更多信息可以在這裏找到:http://php.net/manual/en/function.ob-start.php
ASP.NET默認啓用輸出緩衝,這就是爲什麼當使用Server.Transfer();
實際上與Server.Transfere不同,因爲Server.Transfere不會更改標頭。 – 2009-01-22 22:08:30
對於我使用Request.Transfer(url)的方式;在ASPNET中,PHP中唯一相當於做任何處理你將要做的事情,而不寫任何東西到頭或身體,然後調用頭('Location:url'); – 2011-06-21 21:31:26