加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP xmlwriter文档中的换行符

发布时间:2020-12-13 13:33:20 所属栏目:PHP教程 来源:网络整理
导读:我有一个使用 XMLWriter创建的 XML feed.它在 PHP 5.6流浪盒中完美无缺地工作.在实时服务器上运行PHP 5.4,无法使用消息呈现源: This page contains the following errors:error on line 3 at column 6: XML declaration allowed only at the start of the d
我有一个使用 XMLWriter创建的 XML feed.它在 PHP 5.6流浪盒中完美无缺地工作.在实时服务器上运行PHP 5.4,无法使用消息呈现源:
This page contains the following errors:

error on line 3 at column 6: XML declaration allowed only at the start of the document

如果您查看源代码,它看起来像这样:

不知何故,XML文档中添加了几行.服务器之间的唯一区别是PHP版本(据我所知).

这是XMLWriter代码的前几行:

$xml = new XMLWriter();
$xml->openURI('php://output');
$xml->startDocument("1.0");
$xml->setIndent(true);
$xml->startElement("propertyList");
$xml->writeAttribute('date',date('Y-m-d-H:i:s'));

任何想法如何解决这个问题?

从PHP 5.4到5.6的一些变化……更不用说libxml中的变化……

第一件事显然是确保在打开<?php标签之前或者在使用结束标签之后没有空格. 如果您可以确定何时引入新行(假设它们是新行…您是否使用了十六进制查看器之类的内容?),这将有所帮助.尝试写入临时位置 – 想要确定在提供页面时还是在输出xmlWriter时是否发生这种情况. 想到的事情……
>也许要明确说明indetString应该是什么. $xml-> setIndentString(“”);
>默认编码……?也许试着去做那套.期待开启xml标签… encoding =“UTF-8”.使用startDocument(‘1.0′,’utf-8’);并且可能应该发送标题如:header(‘Content-Type:application / xml; charset = UTF-8’);.你的default_charset是UTF-8吗?
>这两种环境有什么其他区别?喜欢的东西_开通_标签等

> LIBXML_HTML_NOIMPLIED?改变了5.4左右?

解决方法:

>在开始写入输出流之前尝试调用ob_clean.
>使用trim.>升级服务器,这些天想成为5.4的服务器:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读