我该如何在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