Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以只从样式表中提取使用过的CSS吗?_Php_Html_Css_Regex_Twitter Bootstrap - Fatal编程技术网

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

Php 我可以只从样式表中提取使用过的CSS吗?,php,html,css,regex,twitter-bootstrap,Php,Html,Css,Regex,Twitter Bootstrap,我正在尝试发送基于引导的电子邮件,但由于电子邮件不支持外部CSS,因此我需要只嵌入所需的CSS,如…CSS…code…,但我想知道是否可以从引导CSS文件中仅提取表CSS代码,这样我就不必从手动css文件 例如,只收集特定HTML元素及其子元素的所有CSS,例如,我只想复制表格CSS代码 我通过PHP将其检索为: <?php $bootstrap = file_get_contents("bootstrap.min.css"); $explode = explode("}", $boo

我正在尝试发送基于引导的电子邮件,但由于电子邮件不支持外部CSS,因此我需要只嵌入所需的CSS,如
…CSS…code…
,但我想知道是否可以从引导CSS文件中仅提取表CSS代码,这样我就不必从手动css文件

例如,只收集特定HTML元素及其子元素的所有CSS,例如,我只想复制表格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>";
    }
}


?>

如果您使用非小型引导,PHP解决方案将是:

$regex = "/.*(table|tr|td)([^\}]+)}/";
$bootstrap = //here goes bootstrap string
preg_match($regex,$bootstrap, $matches);
然后,$matches将是一个包含所有样式的数组。例如,您可以在
(table | tr | td)
部分中添加任何需要的内容,将其更改为
(table | tr | td | th | tbody)


有关更多文档,请参阅:

如果您使用非小型引导,PHP解决方案将是:

$regex = "/.*(table|tr|td)([^\}]+)}/";
$bootstrap = //here goes bootstrap string
preg_match($regex,$bootstrap, $matches);
然后,$matches将是一个包含所有样式的数组。例如,您可以在
(table | tr | td)
部分中添加任何需要的内容,将其更改为
(table | tr | td | th | tbody)



对于更多的文档,请参阅:

使用Bootstrap作为HTML格式化电子邮件的基础可能不是一个好主意。它不是为处理一些常见电子邮件客户端HTML呈现引擎中的错误而设计的。
window.getComputedStyle(ele)
只针对一个元素,而不针对它的子元素。不幸的是,您处于一个困难的位置;您提出的问题(“我可以从样式表中提取使用过的CSS吗”)是很好的,并且是关于主题的(尽管您最好发布自己的尝试,并解释失败的原因/原因)。不幸的是,由于Bootstrap不推荐用于此目的,因为它是外部托管的,并且不是为(很多很多)电子邮件样式设计问题而设计的,所以它可能很难得到答案。如果您将问题修改为“您推荐什么图书馆?”则该问题立即脱离主题,并将因此关闭。@DavidThomas:是的。。谢谢通知……我需要具体信息并删除注释。:D@DavidThomas:谢谢你的指导,让我的问题变得更好。。!使用Bootstrap作为HTML格式化电子邮件的基础可能不是一个好主意。它不是为处理一些常见电子邮件客户端HTML呈现引擎中的错误而设计的。
window.getComputedStyle(ele)
只针对一个元素,而不针对它的子元素。不幸的是,您处于一个困难的位置;您提出的问题(“我可以从样式表中提取使用过的CSS吗”)是很好的,并且是关于主题的(尽管您最好发布自己的尝试,并解释失败的原因/原因)。不幸的是,由于Bootstrap不推荐用于此目的,因为它是外部托管的,并且不是为(很多很多)电子邮件样式设计问题而设计的,所以它可能很难得到答案。如果您将问题修改为“您推荐什么图书馆?”则该问题立即脱离主题,并将因此关闭。@DavidThomas:是的。。谢谢通知……我需要具体信息并删除注释。:D@DavidThomas:谢谢你的指导,让我的问题变得更好。。!虽然正则表达式可以实现这一点,但您需要展示如何使用正则表达式实现这一点,以便将此评论转化为对OP和未来访问者有用的答案。您是否可以用PHP为
编写正则表达式,并且它都是子元素,因为
等必须编辑我的答案,请检查这是否有效=)Arthur,当你回答一个不是问题/答案作者的特定人时,你应该键入@和他们的名字,以便系统通知他们。@UmairShahYousafzai Arthur的更新答案对你有用吗?虽然这可能是通过正则表达式实现的,您需要展示如何通过正则表达式实现这一点,以将此评论转化为对OP和未来访问者有用的答案。您是否可以用PHP为
编写正则表达式,以及它的所有子元素,如
等。您刚刚编辑了我的答案,请检查这是否有效=)Arthur,当你回答一个不是问题/答案作者的特定人时,你应该键入@和他们的名字,以便系统通知他们。@UmairShahYousafzai亚瑟更新的答案对你有用吗?