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

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

Аноним

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

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

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

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
DevOps Engineer, 55000 грн.
Другие страны, All Around Europe
ІТ-стажер
Харьков, Ukrsibbank BNP Paribas Group
Middle Developer C++
Харьков, G5 Entertainment
Senior Data Scientist
Львов, Eleks
Full-stack PHP програміст, 15000 грн.
Хмельницкий, Customhost
Middle IT Project Manager, 20000 грн.
Львов, Смарт Системс Девелопмент