[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удалить class и id из css-файла
seowin
Приветствую!

Задача такая: найти все классы (class) и индетификаторы (id) в css-Ффайле и проверить каждый, есть ли он в указанном html файле.
Если в html файле его нет, то корретно удалить из css-файла.

Написал следующий код:

function serachClass ($id_class) {
GLOBAL $css;

//Находим все классы
$sclid = "/\\" . $id_class . "[\w_-]+(\,|\{|\s+|\:)/i";
preg_match_all($sclid,$css,$serach_class);

$css_repl = array("}", "{", ":", ",");
$rezult_css = array();
$rezult_css_go = array();

//Очищаем массив
for($i = 0; $i < count($serach_class[0]); $i++) {
$rezult_css[] = trim(str_replace($css_repl, "", $serach_class[0][$i]));
}

//Выделяем уникальные значения из массива
$rezult_css = array_unique($rezult_css);

//Делаем конечный массив
foreach ($rezult_css as $key_val) {
$rezult_css_go[] = trim(str_replace($id_class, "", $key_val));
}

//Проверка существования класса(ID) в html-файле
$serch = file_get_contents("./rezult/default/result.tpl");

for($i_serach = 0; $i_serach < count($rezult_css_go); $i_serach++) {

if($id_class == ".") {

if(preg_match("/class=\".*$rezult_css_go[$i_serach].*\"/", $serch)) {

echo "Класс " . $rezult_css_go[$i_serach] . " найден в базе <br/>" ;

} else {
$bvcbvc = "/[^\}]*?\\" . $id_class . $rezult_css_go[$i_serach] . "[^}]+\}/is";
$css = preg_replace($bvcbvc,'', $css);
}
}
elseif($id_class == "#") {
if(preg_match("/id=\".*$rezult_css_go[$i_serach].*\"/", $serch)) {

echo "ID " . $rezult_css_go[$i_serach] . " найден в базе <br/>" ;

} else {
$bvcbvc = "/[^\}]*?\\" . $id_class . $rezult_css_go[$i_serach] . "[^}]+\}/is";
$css = preg_replace($bvcbvc,'', $css);
}
}

}
}


serachClass(".");
serachClass("#");


Классы и ID определяются верно.

Проблема в регулярке, которая удаляет в css-файле не найденные в html-коде классы и ID. Т.е. вот в этой:

$bvcbvc = "/[^\}]*?\\" . $id_class . $rezult_css_go[$i_serach] . "[^}]+\}/is";
$css = preg_replace($bvcbvc,'', $css);


Почему-то удаляется часть элементов, которые были найдены в html-файле.
К сожалению, не смог отследить закономерность.

Не могу понять, в чем моя ошибка?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.