Добрый день. Сразу скажу, что я прекрасно понимаю, что это почти никак не поможет в защите от парсинга, но мне хочется попробовать реализовать систему автоматической замены CSS классов на странице.
Допустим у нас есть такая HTML страница:
<div class="article">
<div class="image">...</div>
<h1 class="title">...</h1>
</div>
После выполнения скрипта должно получиться нечто подобное. При этом важно, чтобы CSS стили были сохранены.
<div class="06fe">
<div class="414b">...</div>
<h1 class="b3a4">...</h1>
</div>
Как я представлял себе решение задачи:
- Парсю нужный HTML файл и получаю из него список всех используемых CSS классов
- Парсю файл стилей и ищу в нем вхождения ранее найденных классов
- В случае нахождения генерирую новое имя для класса. Также заменяю его в HTML
- Сохраняю новые HTML и CSS файлы. Оригиналы файлов также куда-то складываю
- Задача крутится в кроне и выполняется каждый час
Алгоритм действий вроде понятен. Но как только приступил к их выполнению, то сразу же столкнулся с несколькими трудностями. Вот некоторые из них:
- Чем парсить HTML и как получить список классов?
Нашёл специальную библиотеку DiDOM. Но она больше подходит для вычленения какой-либо информации. Мне лишь нужно получить массив используемых классов. Подойдет ли мне эта библиотека или есть более легкий способ?
- Как искать нужные классы в CSS?
Смог найти библиотеку sabberworm/PHP-CSS-Parser. Но не смог найти метод поиска определенного класса. Нужна ли мне вообще эта библиотека или можно ограничиться простым поиском-заменой?
- Как быть уверенным, что после генерации не будет двух одинаковых классов?
Думал либо просто использовать для имен достаточно длинную строчку из случайных символом, чтобы минимизировать вероятность генерации одинаковых значений. Достаточная ли эта мера или мне необходимо запоминать имена классов?
Буду благодарен за любую помощь. Если у вас есть опыт реализации подобных систем, то пожалуйста поделитесь знаниями. Заранее спасибо :)