【发布时间】:2017-03-11 04:18:57
【问题描述】:
我已经经历了大约 3 个小时,但没有成功。有人可以指出我的脚本有什么问题吗?它写了信息,但它在一行中完成,我正在格式化它,尝试了不同的方式,但它只保留在一行中。
<?php
if (!file_exists ($fpath))
{
$fo = fopen($fpath, 'a') or die("Failed to create file.");
fwrite($fo, "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r<".$fname.">\r</".$fname.">") or die("Failed to format file.");
fclose($fo);
}
$xml = new DOMDocument('1.0', 'utf-8');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load($fpath);
$date = date("Y-m-d");
@$email = $_POST['email'];
$nonode = $xml->getElementsByTagName($sn);
if ($nonode->length == 0)
{
$addnode = $xml->createElement($sn);
$newnode = $addnode->appendChild($xml->createElement('data'));
$newnode->appendChild($xml->createElement('date', $date));
if (isset ($_POST['email']))
{
$newnode->appendChild($xml->createElement('email', $email));
}
$xml->getElementsByTagName($fname)->item(0)->appendChild($addnode);
$xml->save($fpath);
}
?>
【问题讨论】:
-
如果你设置
$xml->preserveWhiteSpace = true;会有什么不同吗? -
不,它一直在做同样的事情。谢谢@Ken H。
-
为什么在原始字符串中用
\r(回车)分隔行?不应该是\n(换行符)吗? -
嗯,一开始我使用
/n,但后来将其更改为/r试图解决这个问题,除非在创建文件时写入数据,否则两者都可以完成工作谢谢@Jim驻军