2009-01-22 54 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();