Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 加载、读取XML文件,但以空格保存为文件文本_Php_Xml - Fatal编程技术网

Php 加载、读取XML文件,但以空格保存为文件文本

Php 加载、读取XML文件,但以空格保存为文件文本,php,xml,Php,Xml,我刚刚加载了xml文件并立即保存,但随后它变成了文本文件。 我的XML结构在这里很简单: <?xml version="1.0" encoding="UTF-8"?> <ContentInfo> <Content> <PlayerID>P1</PlayerID> <TVID>TV1</TVID> <TVStatus>0</TVStatus&

我刚刚加载了xml文件并立即保存,但随后它变成了文本文件。 我的XML结构在这里很简单:

<?xml version="1.0" encoding="UTF-8"?>
<ContentInfo>
    <Content>
        <PlayerID>P1</PlayerID>
        <TVID>TV1</TVID>
        <TVStatus>0</TVStatus>
    </Content>  
</ContentInfo>

P1
TV1
0
以下是我的php代码:

<script type="text/javascript" src="jquery-2.1.4.js"></script>
<?php
ob_start();
$xml = new DOMDocument('1.0');
$xml->encoding = 'UTF-8';
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('TV_Status.xml');
htmlentities($xml->save('TV_Status.xml'));
header("Refresh: 120;url='index.php'");
 ?>

编码='UTF-8';
$xml->formatOutput=true;
$xml->preserveWhiteSpace=false;
$xml->load('TV_Status.xml');
htmlentities($xml->save('TV_Status.xml');
标题(“刷新:120;url='index.php'”;
?>

它会自动更改为文本文件,尽管它仍然以xml文件结尾,并且仍然可以编辑。

xml文件是文本文件。应该没有问题:

我刚刚试过,新编写的文件看起来与源文件几乎完全相同

XML是文本

您应该删除
ob_start()。如果您的意思是格式与您希望的不一样,那么您应该使用此部分

$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;

有点。XML文件是文本文件。具有应用程序可以解析的特定语法的文本文件。默认情况下,如果将数据发送到浏览器,PHP将发送一个附加信息(HTTP头),说明数据是HTML。如果浏览器以HTML形式接收数据,它将尝试解析和呈现数据。XML语法使用类似的语法,因此XML标记被解析为HTML,但被忽略为未知的HTML标记。浏览器显示XML文件的文本内容

您可以通过发送不同的内容类型标题来更改该行为:

以XML格式发送:

header("Content-Type: application/xml");
readfile('TV_Status.xml');
以文本形式发送:

header("Content-Type: text/plain");
readfile('TV_Status.xml');

您不需要为此加载和解析XML文件,只需使用
readfile()

将其读取并传递到浏览器“它成为文本文件”是什么意思?XML是文本,所以应该是正确的。对不起,用空格编辑的文本不是XML格式