Как раздать нескольким <h2> в тексте разные классы

mikhail_14

Мы не знаем что это такое, если бы мы знали...
Здравствуйте,

Подскажите как можно в исходном коде статей расставить классы для заголовков H2?
Статей много - вручную не вариант.

По сути надо в цикле пройтись по всем материалам и при встрече заголовка, в зависимости от его порядка в тексте, дать ему класс.
Например классы header1, header2, header13

Сказать легко - сделать не могу 😶
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Использовать функцию preg_replace и в исходном коде менять "h1" на "h1 class='header1" и так далее.
Не, тормози. Зачем тут регулярки? Если уж так пошло, то тут и простой замены хватит.

Автор, откуда статьи, откуда их разметка? То есть это готовые файлы, или с базы все тянется, или откуда? Для оптимального решения твоей задачи мало данных
 

mikhail_14

Мы не знаем что это такое, если бы мы знали...
Мне надо было прогнать все записи из базы и перезаписать их с добавленными данными.

Подсказали на другом форуме такой скрипт:

$text = '
<h2>11 </h2>
<h2>22 </h2>
';
$res = preg_replace_callback('/<h2/', function(){
static $x = 0;
$x++;
return '<h2 class="header' . $x . '"';

}, $text);

print $res;

Работу выполняет.

Спасибо за помощь в поиске решения!
 

AmdY

Пью пиво
Команда форума
А зачем вообще это делать? В чём прикладной смыл задачи?
 

nefone

Новичок
Подсказали на другом форуме такой скрипт:

$text = '
<h2>11 </h2>
<h2>22 </h2>
';
$res = preg_replace_callback('/<h2/', function(){
static $x = 0;
$x++;
return '<h2 class="header' . $x . '"';

}, $text);

print $res;

Работу выполняет.
Вообще, как правильно подсказали выше можно справиться и обычной заменой:
PHP:
$text = '
<h2>11 </h2>
<h2>22 </h2>
';

$result = str_replace('<h2', '<h2 class="header"', $text);

echo $result;
 

Valick

Новичок
Да тут одно то, что в БД храняться html тэги уже настораживает.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Да тут одно то, что в БД храняться html тэги уже настораживает.
Открою секрет, тебя это не должно пугать и настораживать, это все нормально. Есть масса CMSок и прочего, которые так делают.
 

weregod

unserializer
Если тебе выхлоп WYSIWYG сохранить надо, что будешь сохранять и что там ненормального?
 
Сверху