@greenline111

Как изменить класс из элемента HTML (Парсер php)?

(Суть задачи:

Есть сайт-пример, нужно сделать скрипт, который сможет его размножить на n-ое количество копий, но с генерацией разных классов и идентификаторов(именно названий). В том числе и в файле css тоже соответственно надо чтобы скрипт их менял.)

использую я библиотеку simple_html_dom.php, пытаюсь спарсить index.html изменяя все классы существующие на другие, но не знаю как это сделать.
//===================================[Открытие и редктирования файлов]====================================//
        $dir = "file/112/"; // Если файлы находятся в доп папке то дописываем, если нет оставляем только file (Пример: если доп. папка (file/112/)
                        //если не то просто file)

        // Открыть заведомо существующий каталог и начать считывать его содержимое
        if (is_dir($dir)) {
            if ($dh = opendir($dir)) {
                $data = file_get_html('index.html');
                foreach($data->find('div') as $div){
                    $
                    closedir($dh);
                }
            }
        }
  • Вопрос задан
  • 508 просмотров
Пригласить эксперта
Ответы на вопрос 2
artzolin
@artzolin
php, WordPress разработка сайтов artzolin.ru
Как советует документация, после работы с объектом его нужно очищать с помощью ->clear(). По какой-то причине он все равно остается в переменной, поэтому я делаю еще и unset(). Закрывать директорию нужно после всех операцию, а не посреди цикла

Что касается классов, вы можете искать нужные и менять, как в примере

if ( $dh = opendir($dir) ) {
	$data = file_get_html('index.html');
	foreach( $data->find('div') as $div ){
		if ( $div->class == 'col-md-12' ) {
			$div->class = 'col-12 col-md-6';
		}
	}
	$data->clear();
	unset($data);

	closedir($dh);
}


Не забудьте сохранить произведенные изменения
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Зачем такие сложности? Вы же тупо 1 слово на другое меняете? Зачем все это парсить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы