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

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

Аноним

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

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

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

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
SMM, Content Manager, 20000 грн.
Киев, PublBox
Junior Affiliate Manager
Киев, Genesis
Разработчик JavaScript, 52000 грн.
Киев, Newtend
C# .Net Developer (Middle)
Харьков, Profit Center FX
Ведущий специалист по поддержке интернет-банкинга
Киев, Первый Украинский Международный Банк (ПУМБ)
Senior Unity 3D developer, 75000 грн.
Киев, Minexsystems
Системный администратор, 10000 грн.
Харьков, Мета Ритейл, ООО
Ассистент руководителя, digital-маркетолог junior
Киев, Nick Digital, интернет-агентство