Добрый день и с Новым Годом всех вас!
У меня есть переменная с данными:
<?php
$content = '
<code>
<?php echo '<p>Привет, мир!</p>'; ?>
</code>
<p></p>
<code>
<?php echo '<p>Добрый день, мир!</p>'; ?>
</code>
<div></div>
<code>
<?php echo '<p>Добрый вечер, мир!</p>'; ?>
</code>
<p>И т. д.</p>
';
Необходимо найти СОДЕРЖИМОЕ (содержимое - это то что внутри) всех тегов code ,обработать его функцией htmlspecialchars и вернуть обратно в контент (внутрь тегов code) уже обработанные результаты. Должно получиться так:
$content = '
<code>
<?php echo '<p>Привет, мир!</p>'; ?>
</code>
<p></p>
<code>
<?php echo '<p>Добрый день, мир!</p>'; ?>
</code>
<div></div>
<code>
<?php echo '<p>Добрый вечер, мир!</p>'; ?>
</code>
<p>И т. д.</p>
';
Я пробую так, но, что-то не работает:
preg_match_all( "/(?<=<code>).*?(?=<\/code>)/uis", $content, $matches );
foreach($matches[0] as $one) {
$obr = htmlspecialchars( $one[0], ENT_QUOTES, 'UTF-8' );
$content = str_replace( $one[0], $obr, $content);
}
Где я ошибаюсь?