I encountered this problem. I found this solution online and saved it as a favorite.
Friends who write PHP must have encountered such a problem: Change the http protocol header through the header function. , a warning similar to the following format will appear:
Why is this? Because you cannot output anything before using the header function, including the output of output functions such as echo or var_dump, and the space before
header("content-type:text/html;charset=utf-8");
die();
?>
This code is simple Header, there is no output before We use ultraEdit to open this file and switch to hexadecimal. You can see that at the beginning of the text, there is EFBBBF, followed by 3C 3F 70 68 70 (
What is this EFBBBF? Its name is BOM, Byte Order Mark, which is a convention under Windows for marking whether text is Unicode. The Notepad program uses these three bytes to determine whether the file is ANSI or Unicode.
Now that we know the cause of the problem, let’s find a way to remove the BOM. Use Dreamweaver to open this PHP page, and then enter the page settings (press Ctrl+J) to pop up the following window:
Cancel the selection "Including Unicode Signature (BOM)", just confirm. Now, we use UltraEdit to open the hexadecimal content of this file, as shown below
. You can see that the BOM information is gone now, and the file starts directly with 3C3F70 .
Finally, we refreshed the browser and found that there is no Warning prompt anymore, and the problem is solved.
http://www.bkjia.com/PHPjc/328179.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/328179.htmlTechArticleI encountered this kind of problem. I found this solution online and saved it for my friends who write PHP. I encountered such a problem: When changing the http protocol header through the header function, it will...