用PHP

2011-09-01 50 views
0

打印的xml我有这样的PHP代码用PHP

<?php 
    $status_code=1; 
    echo "<?xml version=\"1.0\"?>\n"; 
    echo "<response>\n"; 
    echo "\t<status>$status_code</status>\n"; 
    echo "\t<time>" . time() . "</time>\n"; 
    if ($status_code == 1) { 
      echo "\t<message>\n"; 
      echo "\t\t<author>Vlad</author>\n"; 
      echo "\t\t<text>Ova e poraka</text>\n"; 
      echo "\t</message>\n"; 
    } 
    echo "</response>"; 
    ?> 

为什么我没有得到在浏览器中的打印XML代码?

也是很好的做法,通过在PHP中直接打印xml代码来创建ajax请求,或者我应该使用一些xml php函数来创建xml代码?

我希望通过使用jQuery,AJAX,PHP和MySQL使用该tutorial创建一个聊天系统,但我得到的错误,上面印XML的格式不正确

+0

尽量避免要求在一个完全不同的两个问题。让他们分开处理并因此分开回答更有用。 –

+0

mmmm确定:)将与其他问题中的ajax发布 – Vlad

+0

可能的重复[如何在php中回显xml文件](http://stackoverflow.com/questions/1199595/how-to-echo-xml-file-in- php) – mikl

回答

2

由于该有的都有说,你需要给浏览器一个标题让它知道如何显示页面。

至于XML功能,看看在PHP SimpleXMLElement

3

尝试查看源中,XML是有但只是不可见。您的浏览器将尝试将页面显示为HTML,因为您不提供正确的标题。由于没有标签,你不会看到任何东西。

你应该发送正确的头,因为这样的:

header('content-type: text/xml') 
+2

只需指出,标题应该在任何输出到页面之前修改(在这种情况下,在脚本的开始处)。 – Alex

+0

如果这是不可能的,你可以使用'ob_start'。但是,尽量将它们发送到页面的顶部。 – TJHeuvel

+0

好的。只有当我删除行回声“<?xml version = \”1.0 \“?> \ n”;当这条线存在时,我得到这个错误XML解析错误:XML或文本声明不在实体 – Vlad

2

你必须把报头(让浏览器知道如何呈现显示):

header ("Content-Type:text/xml"); 
+0

开始也尝试内容类型为:application/xml –

0

你必须使用正确的内容类型,如其他人所说。 我建议你使用XMLReader。 或者,如果你想要一个更简单的方法,然后尝试使用Heredoc字符串语法与sprintf和用htmlspecialchars与那些在XML特殊含义的字符编码值(如<> &)