我可以从样式表中仅提取使用过的CSS吗?

时间:2017-03-04 13:45:54

标签: php html css regex twitter-bootstrap

我正在尝试发送基于BootStrap的电子邮件,但由于电子邮件不支持外部CSS所以我需要将所需的CSS仅嵌入<style>....css....code....</style>,但我想知道是否可以提取我可以提取只有来自BootStrap CSS文件的Tables CSS代码,这样我就不必手动从css文件中收集CSS代码部分了吗?

比如仅收集特定HTML元素的所有CSS及其子元素,例如我想只复制Tables CSS代码???

我通过PHP检索它:

<?php

$bootstrap = file_get_contents("bootstrap.min.css");

$explode = explode("}", $bootstrap);

for ($i=0; $i < count($explode); $i++) { 
    if (strpos($explode[$i],".table") !== false) {
        echo $explode[$i]."}</br></br>";
    }
}


?>

1 个答案:

答案 0 :(得分:0)

如果您使用未缩小的BootStrap,PHP解决方案将是:

$regex = "/.*(table|tr|td)([^\}]+)}/";
$bootstrap = //here goes bootstrap string
preg_match($regex,$bootstrap, $matches);

然后,$ matches将是一个包含所需样式的数组。您可以在(table|tr|td)部分添加所需内容,例如将其更改为(table|tr|td|th|tbody)

有关更多文档,请参阅:https://secure.php.net/manual/function.preg-match.php