





Самый простой способ - использовать переадресацию header.
header('Location: /index.php');
Редактировать: Или вы можете просто включить файл и выйти, если не хотите использовать заголовки HTTP.
Кстати, я использую Request.Transfer (url); в ASPNET единственный эквивалент в PHP - выполнять любую обработку, которую вы собираетесь делать, не записывая ничего в заголовки или тело, а затем вызывая header ('Location: url');
Насколько я знаю, у PHP нет реальной возможности передачи, но вы можете получить точно такой же эффект, используя include () или require (), например:
require_once('/index.aspx");
Я действительно разобрался с этим и собирался сам ответить на этот вопрос, но вы меня опередили.
Require_once будет более подходящим, поскольку вы не будете добавлять никаких других операторов require, если вы хотите, чтобы это работало как Server.Transfer. Кроме того, по крайней мере, вам нужно добавить exit или die в конец вашего оператора, иначе это просто оператор PHP require, а не Server.Transfer
Использование require будет похоже на 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.Transfer, поскольку Server.Transfer не меняет заголовок.