2009-01-22 39 views
3

我該如何在PHP中執行此操作?代碼轉換:PHP中的ASP.NET Server.Transfer

Server.Transfer("/index.aspx") 

(加 ';' 爲C#)

編輯:

有URL是很重要的保持和以前一樣;你知道,谷歌。在我的情況下,我們有一堆我們想要傳輸的.html文件,地址欄不改變對客戶端來說很重要。

回答

5

據我所知,PHP沒有一個真正的傳輸能力,但你可以通過使用包括(得到完全相同的效果)或要求()像這樣:

require('/index.aspx"); 
2

最簡單的方法是使用header重定向。

header('Location: /index.php'); 

編輯: 或者你可以只包括文件並退出,如果你不想使用HTTP頭。

+0

實際上與Server.Transfere不同,因爲Server.Transfere不會更改標頭。 – 2009-01-22 22:08:30

+0

對於我使用Request.Transfer(url)的方式;在ASPNET中,PHP中唯一相當於做任何處理你將要做的事情,而不寫任何東西到頭或身體,然後調用頭('Location:url'); – 2011-06-21 21:31:26

0

使用需要將與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();