Перевод кода: ASP.NET Server.Transfer в PHP - PullRequest
3 голосов
/ 23 января 2009

Как бы я это сделал в PHP?

Server.Transfer("/index.aspx")

(добавить ';' для C #)

EDIT:

Важно, чтобы URL оставался таким же, как и раньше; Вы знаете, для Google. В моей ситуации у нас есть несколько файлов .html, которые мы хотим передать, и для клиента важно, чтобы адресная строка не менялась.

Ответы [ 3 ]

5 голосов
/ 23 января 2009

Насколько я знаю, PHP не имеет реальной возможности передачи, но вы можете получить точно такой же эффект, используя include () или require (), вот так:

require_once('/index.aspx");
2 голосов
/ 23 января 2009

Самый простой способ - использовать header редирект.

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

Edit: Или вы можете просто включить файл и выйти, если не хотите использовать заголовки HTTP.

0 голосов
/ 27 января 2015

Использование 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 ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...