我网站中的用户将打开一个表单<textarea>
,他们将在其中键入文本,可能包含多个段落。一旦他们提交,文本将在 HTML 页面中可用,每个段落都包含在<p>
标签中。他们可能会在以后返回并更改他们编写的内容,这些内容将存储在 .xml 文件中。
我是使用 php 创建和编辑 .xml 文件的新手,但这似乎是有序的。我一直在做噩梦的是将文本区域中的内容按段落分解为不同的节点。我在使用表单加载页面时一直在使用的是
$pageElements = array('title','subtitle','parag');
// [...]
foreach($pageElements as $element){
$temp = $page->getElementsByTagName($element);
foreach($temp as $node){
$t[$element][] = $node->nodeValue;
}
}
// [...]
$t['parag'] = implode(' ',$t['parag']);
这将显示<textarea>
用双换行符分隔的段落,所以这是我目前想要的。但是当用户提交表单时,我使用以下代码将段落插入回 .xml:
// [ delete all nodes from that page ]
$t['parag'] = explode(' ',$_POST['parag']);
// [...]
foreach($t['parag'] as $parag){
$parags->appendChild($xml->createTextNode($parag));
}
当我查看 .xml 文件时,所有段落都有一个节点,它们
在文件中用换行符分隔。在我看来,当浏览器(我尝试过 Chrome 和 Firefox)找到
时,它会将其转换为其他换行符,而我找不到将其分解回数组的内容。如果我再次使用表单加载页面,它会将字符串分成段落,但是当我开始为另一个页面编写代码时,我希望将每个段落放在 a 中<p>
,我需要将它们分开。
我在这个网站上看了很多帖子都没有运气。我还尝试了以下所有组合:
$t['parag'] = implode(' ',$t['parag']);
$t['parag'] = implode(' \n',$t['parag']);
$t['parag'] = implode('\n',$t['parag']);
$t['parag'] = implode(' \n',$t['parag']);
$t['parag'] = implode('\n\r',$t['parag']);
$t['parag'] = implode('\r\n',$t['parag']);
$t['parag'] = implode(' ',$t['parag']);
$t['parag'] = implode(' ',$t['parag']);
$t['parag'] = explode(' ',$_POST['parag']);
$t['parag'] = explode(' ',$_POST['parag']);
$t['parag'] = explode(' \n',$_POST['parag']);
$t['parag'] = explode(' \r',$_POST['parag']);
$t['parag'] = explode('\n\r',$_POST['parag']);
$t['parag'] = explode('\r\n',$_POST['parag']);
$t['parag'] = explode('<br />',nl2br($_POST['parag']));
\n
我想我尝试了and的所有组合,\r
它们总是导致
xml 文件中出现换行符。现在我迷路了。
有谁知道我应该使用什么来内爆和爆炸以获得预期的效果?
提前谢谢了!