php闭合标签输出多余空行使xml页面显示错误的处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php闭合标签输出多余空行使xml页面显示错误的处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1875字,纯文字阅读大概需要3分钟。
内容图文
在PHP官方文档中,曾经指出最好不要再结尾添加?>结束标记。但我们编程的习惯和使用的IDE都会为我们自动建立php结束标记?>。这个标记使用在正常情况下是不影响程序的运行的。尤其在早期的php4中,这种
标记使用不当也不会影响最后的输出。但我最近遇到了php脚本结束标记照成页面无法显示的问题。
首先wap最终的输出时xml文件,如果xml文件格式有问题,则无法显示结果。在多次检查输出过程发现并没有
问题,同样的代码再另一台测试机上显示也无问题。通过firebug查看,最终的输出
主 要原因,通过firebug分析,可以发现在输出xml之前出现了空行,这个空行照成xml输出不正常,找遍所有原文件并没有任何输出空行或者类似功能语 句。使用ob_clean逐行调试,发现在其中一个文件加载后,输出出现了空行,最终发现是由于那个php文件结尾?>后有两行空行。将空行去掉, 问题解决输出正常。
究其原因,在网上搜索了相关资料,codeIgniter开发规范给出如下解释:
PHP闭合标签“?>” 在PHP中对PHP的分析器是可选的。 但是,如果使用闭合标签,任何由开发者,用户,或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空 白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。这样有利于你确定这 个文件已经结束而不是被删节的。
// 错误的写法 INCORRECT <?php echo "Here's my code!"; ?> // 正确的写法 CORRECT: <?php echo "Here's my code!";
Demo:
test.php <?php header("Content-type:text/xml"); include_once('sys_common.php'); echo'<?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>'; // exit;
需要引入的系统文件sys_common.php
<?php // do someing // 注意:后边这个闭合标签需要去掉,这样上边引入的时候输出xml就不会出错了。 // ?>
OK,找到引入文件,去掉闭合标签的就OK!
内容总结
以上是互联网集市为您收集整理的php闭合标签输出多余空行使xml页面显示错误的处理全部内容,希望文章能够帮你解决php闭合标签输出多余空行使xml页面显示错误的处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。