一部を書き換えている xml ファイルがあり、str_replace ごとにタイムスタンプをミリ秒 (または秒) ずつインクリメントする必要があります。インクリメントとタイムスタンプに秒を追加するためのチュートリアルを見つけましたが、ループ中または各置換インスタンスで時間を追加するためのものではありません。
私の置換コードは次のようになります。
$data = str_replace("</tag1><tag2>", "</tag1><myDate>".date(DATE_ATOM)."</myDate><tag2>", $data);
(明確にするために、ファイルには上記のパターンの複数のインスタンスがあります)
そのままの置換は機能しますが、発生するたびに日付文字列にミリ秒または秒を追加する方法がわからないため、それらはすべて一意です。
ありがとう!
アップデート:
正しい方向に向けてくれた vascowhite に感謝します。これを DOM 操作と組み合わせる必要がありましたが、うまくいきました。知りたい人のための解決策は次のとおりです。
$domsrc = file_get_contents("output.xml");
$MYdom = new DomDocument();
$MYdom->loadXML($domsrc);
$date = new DateTime();
$oneSecond = new DateInterval('PT1S');
$descriptions = $MYdom->getElementsByTagName('myDate');
foreach($descriptions as $nodeDesciption)
{
$nodeDesciption->nodeValue = $date->format(DATE_ATOM);
$date->add($oneSecond);
}
$MYdom->save("DOMoutput.xml");