Home  >  Article  >  Backend Development  >  How to handle the error when outputting redundant blank lines in php closing tags and displaying errors on xml pages

How to handle the error when outputting redundant blank lines in php closing tags and displaying errors on xml pages

高洛峰
高洛峰Original
2016-11-21 17:17:221199browse

In the official PHP documentation, it was pointed out that it is best not to add the ?> closing tag at the end. But our programming habits and the IDE we use will automatically create the php closing tag for us?>. The use of this mark does not affect the operation of the program under normal circumstances. Especially in the early PHP4, improper use of this
tag will not affect the final output. But I recently encountered the problem that the end tag of the php script cannot be displayed on the page.
First of all, the final output of wap is an xml file. If there is a problem with the xml file format, the result cannot be displayed. After checking the output multiple times, it was found that there was no problem. The same code was displayed on another test machine without any problem. Viewed through firebug, the final output

How to handle the error when outputting redundant blank lines in php closing tags and displaying errors on xml pages

How to handle the error when outputting redundant blank lines in php closing tags and displaying errors on xml pagesThe main reason is that through firebug analysis, it can be found that a blank line appears before the xml is output. This blank line is not normal as xml output. After searching all the original files, there is no Any output blank lines or similar functional statements. Using ob_clean to debug line by line, it was found that after one of the files was loaded, a blank line appeared in the output. Finally, it was found that there were two blank lines after the ?> at the end of the php file. Remove the blank lines and the problem will be resolved and the output will be normal.

To find out the reason, I searched for relevant information on the Internet, and the codeIgniter development specification gives the following explanation:

PHP closing tag "?>" The PHP analyzer is optional in PHP. However, if a closing tag is used, any space inserted after the closing tag by a developer, user, or FTP application may cause redundant output, PHP errors, subsequent output that cannot be displayed, and a blank page. Therefore, all PHP files should omit the PHP closing tag and insert a comment to indicate that this is the bottom of the file and locate the file relative to the application. This will help you make sure that the file has ended and was not deleted.

 // 错误的写法 INCORRECT
<?php echo "Here&#39;s my code!"; ?>

// 正确的写法 CORRECT:
<?php echo "Here&#39;s my code!";

Demo:

test.php
<?php
header("Content-type:text/xml");
include_once(&#39;sys_common.php&#39;);

echo&#39;<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[测试]]></title>
<link><![CDATA[http://baidu.com]]></link>
<description><![CDATA[测试空行输出]]></description>
<language><![CDATA[zh-CN]]></language>
<pubDate><![CDATA[18.11.2016 14:54:02]]></pubDate>
<lastBuildDate><![CDATA[18.11.2016 14:54:02]]></lastBuildDate>
</channel>
</rss>&#39;;
// exit;

The system file sys_common.php that needs to be imported

<?php

  // do someing
  // 注意:后边这个闭合标签需要去掉,这样上边引入的时候输出xml就不会出错了。
  // ?>

OK, find the imported file and remove the closing tag and it’s OK!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn