我心不在焉地在新服务器上设置了apache和php,但我在旧服务器上呈现xml的php代码在下面的新服务器上没有渲染是错误显示。请有人帮助我:
XML Parsing Error: XML or text declaration not at start of entity
Location: `http://192.168.1.200/file.php`
Line Number 4, Column 1:<?xml version = "1.0" ?><rows><row id = '85'><cell> </cell><cell> 85 </cell><cell image='folder.gif'> 55 </cell><cell> 61 </cell><cell> 2013-07-27 14:29:15 </cell><cell> ndegwa22@googlemail.com </cell><cell> salland@nts.nl </cell>
^
我的代码
<?php
require("config.php");
header("Content-type:text/xml");
echo "<?xml version = \"1.0\" ?>";
echo "<rows>";
$qry = "SELECT * FROM tickets WHERE parent_id = 0 ORDER BY message_id DESC";
$res = mysql_query($qry) or die(mysql_error().$qry);
while ($row = mysql_fetch_array($res))
{
echo "<row id = '{$row["id"]}'>";
echo "<cell> {$row["id"]} </cell>";
echo "<cell image='folder.gif'> {$row["ticket_id"]} </cell>";
echo "<cell> {$row["message_id"]} </cell>";
echo "<cell> {$row["date_time"]} </cell>";
echo "<cell> {$row["from_email"]} </cell>";
echo "<cell> {$row["to_email"]} </cell>";
echo "<cell> ".xmlEscape($row["subject"])." </cell>";
echo "<cell><![CDATA[";
$ar = explode(";",$row["attachment"]);
foreach($ar as $key=>$value)
{
echo "<a target='_blank' href='Mail/attachments/{$value}'>{$value} </a> ";
}
echo "]]></cell>";
echo "<cell> {$row["eid"]}</cell>";
echo "<cell> {$row["email_status"]}</cell>";
echo "<cell> {$row["ticket_status"]}</cell>";
echo "<cell> {$row["entry_datetime"]}</cell>";
getChildMailXml($row["id"]);
echo "</row>";
}
echo "</rows>";
?>
答案 0 :(得分:1)
header("Content-type:text/xml"); echo "<?xml version=\"1.0\" ?>";
Place require(“config.php”)之前不应有空格,行或打印输出;这些行之后的文件。
<?php
header("Content-type:text/xml");
echo "<?xml version = \"1.0\" ?>";
require("config.php");
echo "<rows>";
echo "<row id='1'><cell>1</cell></row>";
echo "</rows>";
?>
config.php
档
答案 1 :(得分:0)
根据错误消息:
XML解析错误:XML或文本声明不在实体的开头 地点:......
Line Number 4, Column 1: <?xml version = "1.0" ?><rows><row id = '85'><cell> </cell><cell> 85 </cell><cell image='folder.gif'> 55 </cell><cell> 61 </cell><cell> 2013-07-27 14:29:15 </cell><cell> ndegwa22@googlemail.com </cell><cell> salland@nts.nl </cell> ^
您正在输出行号 four 的XML声明(<?xml version = "1.0" ?>
)。如果输出XML声明,则必须输出第一行,即行号 one ( - 不是四(!))。
修复脚本的输出以在第一行和第一列输出它,你应该没问题。
从您显示的代码不可见引入其他行,但您可以放心,无论提供错误消息的是不在说因此,请放心,这实际上是第四行,而不是第一行, 你 需要修复此。
如果您不了解其他行的介绍地点和原因,请了解PHP如何向客户端输出数据。由于输入和输出是编程中的一个基本领域,我建议您从介绍开始学习,然后通过所有 PHP手册的第一章开始学习:
如果您想在阅读旁边添加一些互动学习,可以使用codecademy上的PHP轨道: