За последние 24 часа нас посетили 17768 программистов и 1644 робота. Сейчас ищут 1755 программистов ...

Замена в HTML и CSS названий классов и ID на рандом

Тема в разделе "PHP для новичков", создана пользователем sx000, 5 янв 2018.

  1. sx000

    sx000 Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    35
    Симпатии:
    0
    Есть страница условно с встроенным CSS и конечно же html код, все вместе.
    Задача:
    1. выгрести названия всех классов из CSS кастомных и заменить их скажем на crc32(
    $_SERVER['HTTP_HOST'].$name_class) ну и соотвественно сделать тоже самое в html. Чтоб находился он правильно и работал в браузере.
    2. Сделать тоже самое но с ID те с #
    Ну я пошел сначала по такому пути:

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

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    http://simplehtmldom.sourceforge.net/ вкладка "How to modify HTML elements?"