Регуляркой добавить класс к картинке на PHP

Есть html текст с несколькими картинками. Через php регулярное выражение нужно добавить класс к картинке, если у картинки нет атрибута class и не добавлять, если есть. Либо, если есть атрибут - добавить в него еще один. Без парсера, только регуляркой.
Например, если то добавить . А если , то либо добавить в него или просто не изменять
no image

Аноним

20 ноября, 04:36
521

Нет комментариев

Добавить комментарий
Вы не можете оставлять комментарии. Чтобы добавить комментарий, залогиньтесь или зарегистрируйтесь
Вы не можете голосовать. Чтобы проголосовать, залогиньтесь или зарегистрируйтесь

2 ответа

Ваша задача немного не ясна, а вообще по работе с html я бы вам посоветовал бы средствами JS это сделать
Выборка изображений

$("img");


Прогнать все изображения

$.each(arr, callback);


Проверить на наличие того что вам нужно

$(item).hasClass("class");


Добавить нужный класс

$(item).addClass("class");


достаточно просто получается

no image

Аноним

20 ноября, 05:34

Нет комментариев

Добавить комментарий

Почему самому не почитать мануальчики по регуляркам, они же простые.

/** Adds className to elements where className does not exists (PHP 5.4 required)
*
* @param string $html HTML code to parse
* @param string $class Adds class name to items who do not have classname
* @returns string Reparsed HTML with added class
* @author C. Eugene LatDev Studios
*/

function add_class_if_not_exists($html, $class)
{
    return preg_replace_callback('//si', function($m) use ($class) {
        return (strpos($m[1], ' class=') === false) ? '. $class . '"' . $m[1] . '>' : $m[0];
    }, $html);
}

echo add_class_if_not_exists($my_html, 'my_super_duper_class');



no image

Аноним

20 ноября, 06:22

Нет комментариев

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
IT Developer, 14000 грн.
Киев, Flexword doo
Модератор
Киев, OLX
System Administrator
Киев, Skylum Software
Программист (стажёр, Front-End), 5000 грн.
Полтава, IST.GrouP
Программист С#/ASP.Net
Киев, Медирент
Оператор технической поддержки
Харьков, Ранок, издательство
Программист 1C
Днепр, Оланво, ПСКФ
Junior аккаунт-менеджер, 11000 грн.
Киев, Авеб