php xml 空格,php闭合标签输出多余空行使xml页面显示错误的处理
在PHP官方文檔中,曾經(jīng)指出最好不要再結(jié)尾添加?>結(jié)束標(biāo)記。但我們編程的習(xí)慣和使用的IDE都會(huì)為我
們自動(dòng)建立php結(jié)束標(biāo)記?>。這個(gè)標(biāo)記使用在正常情況下是不影響程序的運(yùn)行的。尤其在早期的php4中,這種
標(biāo)記使用不當(dāng)也不會(huì)影響最后的輸出。但我最近遇到了php腳本結(jié)束標(biāo)記照成頁(yè)面無(wú)法顯示的問(wèn)題。
首先wap最終的輸出時(shí)xml文件,如果xml文件格式有問(wèn)題,則無(wú)法顯示結(jié)果。在多次檢查輸出過(guò)程發(fā)現(xiàn)并沒(méi)有
問(wèn)題,同樣的代碼再另一臺(tái)測(cè)試機(jī)上顯示也無(wú)問(wèn)題。通過(guò)firebug查看,最終的輸出
主 要原因,通過(guò)firebug分析,可以發(fā)現(xiàn)在輸出xml之前出現(xiàn)了空行,這個(gè)空行照成xml輸出不正常,找遍所有原文件并沒(méi)有任何輸出空行或者類(lèi)似功能語(yǔ) 句。使用ob_clean逐行調(diào)試,發(fā)現(xiàn)在其中一個(gè)文件加載后,輸出出現(xiàn)了空行,最終發(fā)現(xiàn)是由于那個(gè)php文件結(jié)尾?>后有兩行空行。將空行去掉, 問(wèn)題解決輸出正常。
究其原因,在網(wǎng)上搜索了相關(guān)資料,codeIgniter開(kāi)發(fā)規(guī)范給出如下解釋:
PHP閉合標(biāo)簽“?>” 在PHP中對(duì)PHP的分析器是可選的。 但是,如果使用閉合標(biāo)簽,任何由開(kāi)發(fā)者,用戶,或者FTP應(yīng)用程序插入閉合標(biāo)簽后面的空格都有可能會(huì)引起多余的輸出、php錯(cuò)誤、之后的輸出無(wú)法顯示、空 白頁(yè)。因此,所有的php文件應(yīng)該省略這個(gè)php閉合標(biāo)簽,并插入一段注釋來(lái)標(biāo)明這是文件的底部并定位這個(gè)文件在這個(gè)應(yīng)用的相對(duì)路徑。這樣有利于你確定這 個(gè)文件已經(jīng)結(jié)束而不是被刪節(jié)的。
// 錯(cuò)誤的寫(xiě)法 INCORRECT
// 正確的寫(xiě)法 CORRECT:
Demo:
test.php
header("Content-type:text/xml");
include_once('sys_common.php');
echo'<?xml version="1.0" encoding="UTF-8"?>
';
// exit;
需要引入的系統(tǒng)文件sys_common.php
// do someing
// 注意:后邊這個(gè)閉合標(biāo)簽需要去掉,這樣上邊引入的時(shí)候輸出xml就不會(huì)出錯(cuò)了。
// ?>
OK,找到引入文件,去掉閉合標(biāo)簽的就OK!
總結(jié)
以上是生活随笔為你收集整理的php xml 空格,php闭合标签输出多余空行使xml页面显示错误的处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php网页加查询框,Twentytwel
- 下一篇: 动态规划算法php,php算法学习之动态