複数のHTMLコメントを含むHTMLがあります。各コメント内にはフォームがあります。私はpreg_replaceを使用して、これらのコメントとフォームを[CONTACT_FORM_X]という形式のタグで囲みます.Xはフォームの数値IDです。PHP regex - 置き換えられた文字列の数値を置き換えます。
$str = 'blah blah blah <!-- CONTACT FORM START [CONTACT_FORM_1] -->some form goes here<!-- CONTACT FORM END 1 --> blah blah blah <!-- CONTACT FORM START [CONTACT_FORM_2] -->another form goes here<!-- CONTACT FORM END 2 -->';
$replace = preg_replace('/<!-- CONTACT FORM START \[CONTACT_FORM_\d\] -->.*<!-- CONTACT FORM END \d -->/', '[CONTACT_FORM_X]', $str);
echo $replace;
だから:
<!-- CONTACT FORM START [CONTACT_FORM_1] -->some form goes here<!-- CONTACT FORM END 1 -->
<!-- CONTACT FORM START [CONTACT_FORM_2] --> another form goes here<!-- CONTACT FORM END 2 -->
が
[CONTACT_FORM_2]で完全に置き換える必要があり
そして.. [CONTACT_FORM_1]で完全に置き換える必要があります私
だから私の質問は次のとおりです:
どのように私は、\ dの値を取得し、その後、私は現在でXを使う場所の代わりにこれを使用することができます私が手の上にF私は私のコードを実行します私のpreg_replace
私のコードは両方のフォームではなくフォームの1つを置き換えるようです。私は複数の出現をすべて置き換えます
@ chris85そうです。私が持っています。 '完全に置き換えられるべきである'は、「間違い」を含まない部分文字列を参照する(OPを再度チェックする) – BeetleJuice
ああ、その場合は不明である。私は私の答えにもメモを追加します。 – chris85