代码转换:ASP.NET Server.Transfer in PHP

时间:2009-01-22 22:02:56

标签: php asp.net

我将如何在PHP中执行此操作?

Server.Transfer("/index.aspx")

(为C#添加';')

修改

让URL与以前保持一致非常重要;你知道吗,对谷歌来说。在我的情况下,我们有一堆我们想要传输的.html文件,对于客户端来说,地址栏不会改变是很重要的。

3 个答案:

答案 0 :(得分:5)

据我所知,PHP没有真正的传输能力,但你可以通过使用include()或require()来获得完全相同的效果:

require_once('/index.aspx");

答案 1 :(得分:2)

最简单的方法是使用header重定向。

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

编辑: 或者您可以只包含该文件,如果您不想使用HTTP标头,请退出。

答案 2 :(得分:0)

使用require将类似于server.transfer,但在某些情况下,它的行为会略有不同。例如,当输出已经发送到浏览器并且使用了require时,将显示已发送到浏览器的输出以及您需要的路径。

模仿C#/ ASP.NET Server.Transfer()的最佳方法是正确设置PHP Output Buffering,然后使用我编写的以下函数。

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()时不必这样做的原因。