私はユーザー認証システムに取り組んでいます。できるだけカスタマイズ可能で柔軟にしたいので、PHP と HTML を混在させたくありません。私は問題なく動作するシンプルなテンプレート エンジンを開発しました (レイアウトのみに純粋な HTML ファイルを使用します)。ただし、フォームに問題があります。場合によっては(入力の検証が失敗した場合など)、以前に入力したデータを記憶させたいと思います。出力バッファリングを使用して最後の HTML をユーザーに表示するため、レイアウト全体を文字列に格納しています。この文字列で私がやろうとしているのは、(ID 属性によって) 特定の HTML 要素を見つけ、その後それらの値を変更することです。ケーステキストまたはパスワードフィールドの問題を解決する方法は知っていますが、コンボボックスも使用するため、それらは別の方法で処理する必要があります。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を使用する必要がありますか?
どうもありがとう!