Interview Question: Can we have an echo before header?

后端 未结 2 1678
悲&欢浪女
悲&欢浪女 2020-12-06 01:46

I appeared for php test, their I was asked one question for which I could not find the answer.

The question is like this.

echo \"MESSI is injured!!\"         


        
相关标签:
2条回答
  • 2020-12-06 02:21

    You can do it as long as all the header calls come before any non-header output is sent (this includes pesky things like newlines/whitespace). So

    <?php
    header("Location:somepage.php");
    echo "MESSI is injured!!";
    ?>
    

    should do the trick

    0 讨论(0)
  • 2020-12-06 02:22

    You can use Output Buffering as

    ob_start();
    echo "MESSI is injured!!";
    header("Location:somepage.php");
    ob_end_flush();
    

    The problem is that we cannot send the header after we start sending the output. To solve this we buffer the output. The function ob_start turns output buffering on. While output buffering is active no output is sent from the script (other than headers), instead the output is stored in an internal buffer. So the echo output will be buffered. Next we send the header without any problem as we've not yet spit out any output. Finally we call ob_end_flush to flush the internal buffer contents and to stop output buffering.

    0 讨论(0)
提交回复
热议问题