Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Регулярное выражение для добавленя класса
(Добавление)
Если просто добавить class то можно и через str_replace сделать)
MiksIr
Отправлено: 06 Октября, 2014 - 18:00:43
Забанен
Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014
Помог: 10 раз(а)
[+]
Можно делать в две регулярки. Сначала добавить class где нет
preg_replace('/<table(?![^>]+class=)/', '<table class=""', $html);
Потом добавить класс
preg_replace('/<table[^>]+class="/', '\0class ', $html);
----- self-banned
dcc0
Отправлено: 06 Октября, 2014 - 18:20:40
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Ты ведь добавляешь класс, либо меняешь класс. Тогда сначала удаляешь класс у всех подобных таблиц, вторым проходом добавляешь нужный.
Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012
Помог: 30 раз(а)
Не, я же писал, что не заменять, а добавлять надо. То есть в моем примере у таблицы должно быть уже два класса: some и table... мало ли что там пришло от пользователя...
dcc0
Отправлено: 06 Октября, 2014 - 23:56:06
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012
Помог: 30 раз(а)
Я не уверен, но мне кажется два class будут работать не корректно. Один будет скорее всего игнорироваться. Поэтому возможно ли получить class="some table" ?
dcc0
Отправлено: 07 Октября, 2014 - 02:05:14
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Скорее, работать будет тот, который есть действительно:
Так можно соединить в один, но если данные будут приходить и с class, и без, то
придется проверять наличие его в тегах на входе, а потом выбирать, какой шаблон применять.
Печаль еще заключается в том, что при таком подходе может понадобится отдельная функция, если, например, могут придти две таблицы - одна с class, другая без
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.