次の文字列をソースからターゲットに変換し、ターゲットからソースに変換したいと考えています。
$strSource = '<g id="5">fist test string</g> <d id="20">some random string</d>';
$strTarget = '{1}fist test string{2}some random string{3}';
私が見つけた解決策は、配列と preg_replace を使用することです。
xslt を使用してこの変換を行うための効率的なソリューションがあるかどうか疑問に思っています。追加データの使用は許可されています。データには、役立つ情報を含めることができます。
更新しました:
これは、よりよく理解するために、preg_match_all を使用した target->source の私のソリューションです。
preg_match_all('/(<.*>)(?!\s*<)/U', $strSource, $arrResult);
echo preg_replace('/{(\d+)}/e', 'arrResult[1]["$1" - 1]', $strTarget);