Типа мини обфускатор HTML+CSS
Есть страница условно с встроенным CSS и конечно же html код, все вместе.
Задача:
1. выгрести названия всех классов из CSS кастомных и заменить их скажем на crc32(
$_SERVER['HTTP_HOST'].$name_class) ну и соотвественно сделать тоже самое в html. Чтоб находился он правильно и работал в браузере.
2. Сделать тоже самое но с ID те с #
Ну я пошел сначала по такому пути:
$str = file_get_contents('index.html');
preg_match_all('/([\.|#][a-zA-Z0-9_-]{1,20}?) \{/is',$str,$matches);
$classes = $matches[1];
$host = $_SERVER['HTTP_HOST'];
foreach ($classes as $key_classes => $class){
$class_minus_1 = mb_substr( $class, 1);
$str = str_replace($class, crc32($class_minus_1.$host), $str);
$str = str_replace("class=".$class_minus_1,"class=".crc32($class_minus_1.$host), $str);
$str = str_replace("id=".$class_minus_1,"id=".crc32($class_minus_1.$host), $str);
}
echo $str;
Все как бы здорово, но не получается выпарсивать все полностью, и заменить грамотно. Например такие конструкции:
.progress-bar.progress-bar-success {
border-radius: 7px !important;
background-image: none !important;
}
Ставят его в тупик. Может есть какое то более гуманное решение ну там на подобие
PHP Simple HTML DOM Parser - там выводим допустим все названия классов и ID блоков, ну как то через тот же simple делаем замены?