php parse css class string

Мне нужно получить имя класса CSS, атрибуты и значения, чтобы применить встроенный стиль CSS к DIV. В настоящее время я могу получить информацию об имени класса CSS из строки, например:

$class = ".custom_class {
    margin-top: 0px !important;
    border-top-width: 0px !important;
    border-right-width: 0px !important;
    border-left-width: 0px !important;
    padding-top: 250px !important;
    padding-bottom: 250px !important;
    background-image: url(http://localhost/wordpress/wp-content/uploads/2015/01/old-car.jpg?id=3663) !important;
    border-left-color: #dd3333 !important;
    border-right-color: #dd3333 !important;
    border-top-color: #dd3333 !important;
}";

Как я могу получить или пересмотреть все атрибуты и значения CSS, чтобы включить их в div следующим образом:

<div class="custom_class" style="margin-top: 0px !important;border-top-width: 0px !important;border-right-width: 0px !important;border-left-width: 0px !important;padding-top: 250px !important;padding-bottom: 250px !important;background-image: url(http://localhost/wordpress/wp-content/uploads/2015/01/old-car.jpg?id=3663) !important;border-left-color: #dd3333 !important;border-right-color: #dd3333 !important;border-top-color: #dd3333 !important;"></div>

Я пытался с этим: preg_match("/{(.*?)}/", $class, $match);Но это выводит в скобках. И что касается названия класса, я не знаю, как это сделать.

1 ответ

Решение

Ты рядом со своим регулярным выражением preg_match("/{(.*?)}/", $class, $match);просто уберите фигурные скобки и получите данные в $match[1]:

preg_match("/^([\w.]+)\s*\{(.*?)\}/s", $class, $match);
$classname = $match[1];
$style = $match[2];
Другие вопросы по тегам