我正在开发用户身份验证系统。因为我希望它尽可能地可定制和灵活,所以我不想将 PHP 与 HTML 混合使用。我开发了一个简单的模板引擎,它工作得很好(仅使用纯 HTML 文件进行布局)。但是我对表格有疑问。在某些情况下(例如输入验证失败时),我想让他们记住之前输入的数据。我使用输出缓冲向用户显示最终的 HTML,因此我将整个布局存储在一个字符串中。我试图在这个字符串中做的是找到特定的 HTML 元素(通过它们的 ID 属性),然后更改它们的值。我知道如何解决文本或密码字段的问题,但我也会使用组合框,并且需要以不同方式处理。我正在考虑使用 DOM 来完成任务,
所以这就是我想要做的:
- 使用 DOM 在字符串中通过其 ID 查找元素 更改元素 适当地将旧元素替换为字符串中的新元素,但保持字符串的其余部分不变
这是一个简单的(不工作的)片段(应该足以说明问题):
<?php
$content = "<input id=\"id\" name=\"name\" type=\"text\" value=\"\" />";
$itemid = "id";
$dom = new DOMDocument();
$dom->loadXML($content);
$item = $dom->getElementById($itemid);
if($item)
{
$value = "New Value";
$newitem = $item;
$newitem->setAttribute('value', $value);
$item = $item->saveXML();
$newitem = $newitem->saveXML();
$content = str_replace($item, $newitem, $content);
}
echo $content;
?>
或者我应该改用 REGEX 吗?
非常感谢!