У меня есть HTML, который содержит несколько комментариев HTML, в каждом комментарии есть форма. Я пытаюсь использовать preg_replace для замены этих комментариев и форм внутри с помощью тега в форме [CONTACT_FORM_X], где X - числовой идентификатор формы.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_1]
И ..
<!-- CONTACT FORM START [CONTACT_FORM_2] --> another form goes here<!-- CONTACT FORM END 2 -->
должны быть полностью заменены с [CONTACT_FORM_2]
я е я запускаю мой код выше, я получаю:
blah blah blah [CONTACT_FORM_X]
Так что мои вопросы:
Как я могу получить значение \ d, а затем использовать это в месте, где я в настоящее время использовать X в my preg_replace
Мой код, похоже, заменяет одну из форм, а не обоих вхождений. Как я могу адаптировать preg_replace, чтобы несколько заменяет
@ chris85 Вы правы. У меня есть. «Должно быть заменено полностью» ссылается на подстроку, которая не включает «бла-бла-бла» (еще раз проверьте ОП) – BeetleJuice
О, неясно, в этом случае. Я также добавлю свой ответ. – chris85