Có, câu hỏi này đã được hỏi trước, tuy nhiên, câu trả lời đã không phù hợp. Lấy ví dụ Why I have to call 'exit' after redirection through header('Location..') in PHP?. Mỗi câu trả lời (bao gồm cả câu trả lời được chấp nhận) đều có, ngoại trừ câu trả lời cuối cùng nhận được số phiếu không nói là "có thể". Tôi bắt đầu nghĩ rằng câu trả lời đúng là "có thể". Để làm cho nó một câu hỏi "có" hoặc "không" đơn giản, sẽ làm điều này() được thực hiện cho kịch bản sau đây? Cảm ơnTập lệnh PHP có được thực thi sau khi chuyển hướng tiêu đề không?
header('Location: http://somewhereElse.com');
//die();
sleep(1000);
doThis();
EDIT Xin cảm ơn, tất cả. Với cấu hình PHP/Linux/Apache của tôi, syslog thứ hai() thực hiện, do đó, câu trả lời là "có, tất cả luồng tập lệnh của tiêu đề sẽ được thực thi". Tôi sẽ giả định (và hy vọng tôi là chính xác) nó là như nhau với tất cả các cấu hình PHP/Linux/Apache!
<?php
header('Location: http://google.com');
syslog(LOG_INFO,'first');
sleep(5);
syslog(LOG_INFO,'Second');
?>
Bạn đã thử chưa? Thời gian ngủ trong ví dụ của bạn sẽ vượt quá 'max_execution_time'. Nếu không, có. – mario
Có, mặc dù bạn không cần lệnh gọi 'sleep()'. 'header()' không ngừng thực hiện, chỉ đặt tiêu đề phản hồi – Phil
Không, chưa thử. Xấu hổ với tôi! Đọc bài viết cuối cùng trên chủ đề SO được tham chiếu ban đầu của tôi cũng như các câu trả lời cho http://stackoverflow.com/questions/7246649/will-all-code-after-redirect-header-in-php-always-get-executed, nó xuất hiện rằng Apache sẽ đóng kết nối và tập lệnh PHP sẽ ngừng thực thi. – user1032531