Как получить теги стиля с помощью регулярных выражений или preg_match_all

Я не очень хорошо знаю, как использовать регулярные выражения или preg_match_all.
Я хочу получить все атрибуты стиля всех элементов, затем получить значения размера шрифта и заменить его новым значением.

пример:

<span style="font-size: 60px;">Coming Soon</span>
<span style="font-size: 60px;">Coming Soon</span>
<span style="font-size: 160px;">Coming Soon</span>
<span style="font-size: 70px;">Coming Soon</span>
<span style="font-size: 260px;">Coming Soon</span>

Получите все размеры шрифта всех элементов, тогда каждый размер будет заменен новым значением.

$getnewfont = 7*$getfont/16;
$getnewfont = round($getnewfont);
$getnewfont = 'font-size:' . $getnewfont . 'px;line-height:' . $getnewfont . 'px;';
$getnewfont = preg_replace('/"font-size:(.*)\"/i', $getnewfont, $content);

это то, что я сделал сейчас, вычисление еще не сделано.
но идея состоит в том, чтобы получить эквивалентный размер шрифта для текущей ширины элемента.

-1

Решение

s/font-size: [0-9]*px;/font-size: 50px;/g

И измените 50 на значение, которое вы хотите.

0

Другие решения

Там нет необходимости использовать preg_match_all функция в таком случае.
preg_replace_callback Функция сделает все необходимые замены:

$html_str = '<span style="font-size: 60px;">Coming Soon</span>
<span style="font-size: 60px;">Coming Soon</span>
<span style="font-size: 160px;">Coming Soon</span>
<span style="font-size: 70px;">Coming Soon</span>
<span style="font-size: 260px;">Coming Soon</span>';

$replaced = preg_replace_callback("/\b(font-size:) (\d{1,3})px;/", function($matches){
$new_size = round(7 * $matches[2]/16);
return $matches[1]." ". $new_size. 'px;line-height: '. $new_size. 'px;';
}, $html_str);

print_r($replaced);

Выход:

<span style="font-size: 26px;line-height: 26px;">Coming Soon</span>
<span style="font-size: 26px;line-height: 26px;">Coming Soon</span>
<span style="font-size: 70px;line-height: 70px;">Coming Soon</span>
<span style="font-size: 31px;line-height: 31px;">Coming Soon</span>
<span style="font-size: 114px;line-height: 114px;">Coming Soon</span>

http://php.net/manual/en/function.preg-replace-callback.php

0

По вопросам рекламы [email protected]