Перенаправить на указанный URL-адрес при завершении PHP-скрипта?

Как я могу заставить PHP-функцию перейти на определенный сайт, когда он будет запущен?

Например:

<?php //SOMETHING DONE GOTO(http://example.com/thankyou.php); ?> 

Мне бы очень понравилось следующее …

 <?php //SOMETHING DONE GOTO($url); ?> 

Я хочу сделать что-то вроде этого:

 <?php //SOMETHING DONE THAT SETS $url header('Location: $url'); ?> 

 <? ob_start(); // ensures anything dumped out will be caught // do stuff here $url = 'http://example.com/thankyou.php'; // this can be set based on whatever // clear out the output buffer while (ob_get_status()) { ob_end_clean(); } // no redirect header( "Location: $url" ); ?> 

Вы всегда можете просто использовать тег, чтобы обновить страницу, или, может быть, просто отпустите необходимый javascript на странице в конце, что приведет к перенаправлению страницы. Вы можете даже бросить это в функцию onload, поэтому после его завершения страница перенаправляется

 <?php echo $htmlHeader; while($stuff){ echo $stuff; } echo "<script>window.location = 'http://www.yourdomain.com'</script>"; ?> в <?php echo $htmlHeader; while($stuff){ echo $stuff; } echo "<script>window.location = 'http://www.yourdomain.com'</script>"; ?> 

Если «SOMETHING DONE» не вызывает какой-либо вывод через echo / print / etc, то:

 <?php // SOMETHING DONE header('Location: http://stackoverflow.com'); ?> 

Обратите внимание, что это не сработает:

 header('Location: $url'); 

Вам нужно сделать это (для расширения переменных):

 header("Location: $url"); 
 <?php // do something here header("Location: http://example.com/thankyou.php"); ?> 

не забудьте поставить «die» после вашего вызова, чтобы сделать перенаправление до того, как остальная часть кода на странице запущена. а. если у вас есть функции заголовка дальше по странице, они будут переопределять те, которые находятся выше кода.

b: im, предполагая, что вы не хотите, чтобы остальная часть кода на странице была запущена, и почему вы перенесите эту переадресацию в первую очередь [возможно].

пример:

 <?php // do something here header("Location: http://example.com/thankyou.php"); die(); //code down here now wont get run ?> 

Вот решение проблемы «заголовки уже отправлены». Предположим, что вы проверяете и отправляете по электронной почте форму. Убедитесь, что php-код является первым на вашей странице … перед любым типом doctype и head и всем этим джазом. Затем, когда POST вернется на страницу, PHP-код будет первым и не столкнется с уже отправленной проблемой.