Есть страница условно с встроенным CSS и конечно же html код, все вместе. Задача: 1. выгрести названия всех классов из CSS кастомных и заменить их скажем на crc32( $_SERVER['HTTP_HOST'].$name_class) ну и соотвественно сделать тоже самое в html. Чтоб находился он правильно и работал в браузере. 2. Сделать тоже самое но с ID те с # Ну я пошел сначала по такому пути: PHP: $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; Все как бы здорово, но не получается выпарсивать все полностью, и заменить грамотно. Например такие конструкции: Код (CSS): .progress-bar.progress-bar-success { border-radius: 7px !important; background-image: none !important; } Ставят его в тупик. Может есть какое то более гуманное решение ну там на подобие PHP Simple HTML DOM Parser - там выводим допустим все названия классов и ID блоков, ну как то через тот же simple делаем замены?