我正在构建来自CSS和HTML的外部变量的电子邮件,然后将它们组合为内联样式。然而,在它们组合之前,我想改变CSS。
在下面,我想删除身体的填充和边距。我应该怎么做 - preg_match还是有“更清洁”的东西?
$css = "body {
background: #fff;
color: #000;
padding: 0;
margin: 0;
font: 83%/1.4 verdana,sans-serif;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
a, a:link, a:visited, a:hover, a:active {
background: transparent;
text-decoration: none;
cursor: pointer;
}";
另外,值得一提的是,我正在使用下面的CSS(然后内联样式),所以也许DOMDocument可以帮助我 - 这看起来更干净,但我不知道从哪里开始。
use TijsVerkoyen\CssToInlineStyles\CssToInlineStyles;
$dom = new DOMDocument();
@$dom->loadHTML($row['htmlbody']); //from a database
$cssobj = $dom->getElementsByTagName('style');
$bodyobj = $dom->getElementsByTagName('body')->item(0);
$plainbody = new DOMDocument();
foreach ($bodyobj->childNodes as $child){
$plainbody->appendChild($plainbody->importNode($child, true));
}
$body = $plainbody->saveHTML();
$css = $cssobj->item(0)->nodeValue;
$cssToInlineStyles = new CssToInlineStyles();
$originalemail = $cssToInlineStyles->convert(
$body,
$css
);
答案 0 :(得分:0)
如果您知道要删除的确切文本,可以使用php中的<div class="card">
<div class="card-block">
<div class="row">
<div class="col-xs-4">
<h4 class="card-title">Title</h4>
</div>
<div class="col-xs-4">
<h5>- smaller that should be beside main title</h5>
</div>
<div class="col-xs-4">
<button class="card-title btn btn-primary pull-right">Button</button>
</div>
</div>
<p class="card-text">Entry 1</p>
<p class="card-text">Entry 2</p>
<p class="card-text">Entry 3</p>
<p class="card-text">Entry 4</p>
</div>
</div>
。示例:str_replace()
或
$str_replace('margin:0;','',$css)