【发布时间】:2016-10-14 17:50:45
【问题描述】:
我对如何使用 regex 或 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);
这是我现在所做的,计算还没有完成。 但想法是获取当前元素宽度的等效字体大小。
【问题讨论】:
-
新值是什么?
-
你能展示一下你迄今为止尝试过的任何东西吗?
-
在这里使用正则表达式之前要三思。虽然它看起来很直接,但它非常不灵活。这意味着当 html 结构中的某些细节发生更改时,实现将失败。在大多数情况下,使用 DOM 解析器会更加健壮。看看 PHP 的
simpleDom或DomDocument。 -
preg_match_all('/style=\"font-size:(.*)\"/i', $content, $output_array);我试过了,但它只有一个 Coming Soon
-
@RomanPerekhrest 我有一个计算会改变字体大小的值,但我需要先获取所有值,然后使用函数获取计算值。
标签: php regex styles preg-replace preg-match-all