Есть файл стилей. Нужно изменить размер каждого шрифта на заданную величину.
На входе
body {
font-size: 13px;
}
.style1 {
font-size: 18px;
}
и тд
На выходе
body {
font-size: 15px;
}
.style1 {
font-size: 20px;
}
Интернеты пишут, что регулярки не поддерживают арифметические выражения, но может есть какая то лазейка...
Используйте замену по регулярному выражению с callback-функцией preg_replace_callback
$css = <<<CSS
body {
font-size: 13px;
}
.style1 {
font-size: 18px;
}
CSS;
$inc = 2;
$css = preg_replace_callback(
"/(font-size:\s*)(?<size>\d+)px/im",
function($matches) use ($inc){
return $matches[1].($matches['size'] + 2)."px";
},
$css
);
print_r($css);
на выходе получите желаемые
body {
font-size: 15px;
}
.style1 {
font-size: 20px;
}
Есть, конечно, нюанс, что шрифт может быть задан как font: 20px Tahoma ;. Для замены по нескольким маскам можете использовать preg_replace_callback_array()
Сборка персонального компьютера от Artline: умный выбор для современных пользователей