【发布时间】:2013-05-31 00:06:29
【问题描述】:
好的,我让它工作了,现在唯一的问题是添加新提交时它会覆盖以前的条目。我需要它将最新提交添加到 XML 文件中,而不是覆盖它并将其存储 X 时间。
这是创建 xml 文件并从 HTML 表单中获取数据并将其放入 XML 文件的工作 php 脚本。
<?php
if (isset($_POST['lsr-submit']))
{
header('Location: http://www.mesquiteweather.net/wxmesqLSR.php');
}
$str = '<?xml version="1.0" encoding="UTF-8"?><entrys></entrys>';
$xml = simplexml_load_string($str);
$fname = $_POST['firstname'];
$lname = $_POST['lastname'];
$location = $_POST['location'];
$report = $_POST['report'];
$description = $_POST['desc'];
$fname = htmlentities($fname, ENT_COMPAT, 'UTF-8', false);
$lname = htmlentities($lname, ENT_COMPAT, 'UTF-8', false);
$location = htmlentities($location, ENT_COMPAT, 'UTF-8', false);
$report = htmlentities($report, ENT_COMPAT, 'UTF-8', false);
$description = htmlentities($description, ENT_COMPAT, 'UTF-8', false);
$xml->reports = "";
$xml->reports->addChild('fname', $fname);
$xml->reports->addChild('lname', $lname);
$xml->reports->addChild('location', $location);
$xml->reports->addChild('report', $report);
$xml->reports->addChild('description', $description);
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$doc->loadXML($xml->asXML(), LIBXML_NOBLANKS);
$doc->save('test2.xml');
?>
这是它创建的 xml 文件。
这是提交给 XML 文件的表单。提交一个测试提交,它会将您带到要显示的页面,但您会注意到它将覆盖最后一个,而不是添加到 XML 文件中。
【问题讨论】:
-
你可以使用 DOM php.net/manual/en/refs.xml.php进行研究
-
对于
X amount of time,您可能需要cron工作。 -
还有这个链接phpro.org/tutorials/Introduction-To-SimpleXML-With-PHP.html - 里面有很多有用的信息。
-
查看我编辑的帖子。我尝试了该链接中的示例,但没有显示任何内容。第二个链接我已经知道了。我需要从 HTML 表单生成 XML 文件。