我使用jQuery来让用户位置不同的div。 后来我倾倒他们通过jQuery的$。员额一个PHP POST功能,并将它们保存到外部HTML文件通过PHP。 这应该处理的书面PHP文件使用DOM文档(这是我从来没有used-我也没有任何XML规范的知识,如果有的话)。
在PHP文件内容如下:
<?php
$data = $_POST['data'];
$doc = new DOMDocument();
$doc->loadHTMLFile("startfile.html");
$doc->getElementById('container')->nodeValue = $data;
$doc->saveHTMLFile("endfile.html")
?>
这是非常简单的,它应该工作。 Howewer,而endfile.html输出应该是:
<div id="container">
<div class= "dummydata">
</div>
</div>
它实际上输出
<div id="container">
</class= "dummydata">
</div>
</div>
这当然不能被浏览器正确解析。 我相信,我已经失去了一些东西简单,一旦该解决方案是在我的眼前,我会感到非常愚蠢的。 我不想再打给fopen / fwrite的,因为这似乎是处理HTML文件的一个非常优雅和灵活的方式。
编辑:既然建议的XML片段解析未能保持因unproper格式(可能只是cosmeting,看到我基本上传递工作的HTML代码-可能这是XML是更明智的关于间距和字符使用-我去这个非常哈克解决方案:
//write HTML with nodevalue
$doc->getElementById('container')->nodeValue = $data;
$doc->saveHTMLFile("../test.html");
//open file and replace stripped < and >s
$file_path ='../test.html'
$content = file_get_contents($file_path);
$content = str_replace('<', '<', $content);
$content = str_replace('>', '>', $content);
file_put_contents($file_path, $content);
这不是很优雅,但它的工作原理。 有什么想法吗? 你认为这样的解决方案哈克可能有正当理由的,而不是试图正确地格式化我传递为XML的HTML? 什么是一些可能的陷阱? 我想不出任何,看到我只是克隆格式错误,但工作的HTML。 提前致谢。