Php 可以从HTML中提取内联CSS吗?
使用,是否可以提取HTML文件的内联CSS 这个解析器如果是纯html,假设(如果我错了,请纠正我)它不能解析CSS标记。有没有其他方法可以提取html文件中的内联CSS?这应该可以:Php 可以从HTML中提取内联CSS吗?,php,html,css,dom,Php,Html,Css,Dom,使用,是否可以提取HTML文件的内联CSS 这个解析器如果是纯html,假设(如果我错了,请纠正我)它不能解析CSS标记。有没有其他方法可以提取html文件中的内联CSS?这应该可以: $doc = new DOMDocument(); $doc->loadHTML('<html><body style="color: red"></body></html>'); $els = $doc->getElementsByTagName('
$doc = new DOMDocument();
$doc->loadHTML('<html><body style="color: red"></body></html>');
$els = $doc->getElementsByTagName('*');
for($i = 0; $i < $els->length; $i++)
echo $els->item($i)->getAttribute('style'); // color: red
$doc=newDOMDocument();
$doc->loadHTML(“”);
$els=$doc->getElementsByTagName('*');
对于($i=0;$i<$els->length;$i++)
echo$els->item($i)->getAttribute('style');//颜色:红色
这应该可以:
$doc = new DOMDocument();
$doc->loadHTML('<html><body style="color: red"></body></html>');
$els = $doc->getElementsByTagName('*');
for($i = 0; $i < $els->length; $i++)
echo $els->item($i)->getAttribute('style'); // color: red
$doc=newDOMDocument();
$doc->loadHTML(“”);
$els=$doc->getElementsByTagName('*');
对于($i=0;$i<$els->length;$i++)
echo$els->item($i)->getAttribute('style');//颜色:红色
使用普通HTML解析器:
style
,则获取元素的内容样式
,则获取该属性的值使用普通HTML解析器:
style
,则获取元素的内容样式
,则获取该属性的值如果您确实需要使用simplehtmldom来提取:
为了
为了
如果有多个
div
具有style
atribute或多个
,则可以使用foreach
在它们之间循环
要分析样式,请执行以下操作: 在PHP中:
$s='背景:蓝色;颜色:白色;;
$results=[];
$styles=分解(“;”,$s);
foreach($style作为$style){
$properties=explode(“:”,$style);
如果(2==计数($properties)){
$results[trim($properties[0])]=trim($properties[1]);
}
}
var_dump($结果);
在JS中
let s='背景:蓝色;颜色:白色;;
让结果={};
设styles=s.split(“;”);
for(在样式中加入样式){
让properties=styles[style]。拆分(“:”);
如果(properties.length==2){
结果[属性[0].trim()]=属性[1].trim();
}
}
控制台日志(结果);
如果您确实需要使用simplehtmldom来提取:
为了
为了
如果有多个
div
具有style
atribute或多个
,则可以使用foreach
在它们之间循环
要分析样式,请执行以下操作: 在PHP中:
$s='背景:蓝色;颜色:白色;;
$results=[];
$styles=分解(“;”,$s);
foreach($style作为$style){
$properties=explode(“:”,$style);
如果(2==计数($properties)){
$results[trim($properties[0])]=trim($properties[1]);
}
}
var_dump($结果);
在JS中
let s='背景:蓝色;颜色:白色;;
让结果={};
设styles=s.split(“;”);
for(在样式中加入样式){
让properties=styles[style]。拆分(“:”);
如果(properties.length==2){
结果[属性[0].trim()]=属性[1].trim();
}
}
控制台日志(结果);
这样,您就可以找到具有属性display:block
的样式。根据需要修改它,就可以得到内联CSS
这样,您就可以找到具有属性
display:block
的样式。根据需要修改此选项,即可获得内联CSS。是否要分析内联CSS(在样式
元素中)或内联样式(在样式
元素属性中)。内联CSS是html的一部分。它只是style
标记的内容,或者style
属性的值。因此,您应该能够使用HTML解析器获取这些值。内联始终被称为元素的内部样式属性,前者将在文档样式扫描中,我包括使用解析器对其进行css解析的css?因为您已经学习了如何替换属性,您已经知道如何获取样式属性,因此,这是要分析内联css(在style
元素内部)还是内联样式(在style
元素属性内部)的副本。内联css是html的一部分。它只是style
标记的内容,或者style
属性的值。因此,您应该能够使用HTML解析器获取这些值。内联始终被称为元素的内部样式属性,前者将在文档样式扫描中,我包括使用解析器对其进行css解析的css?因为您已经学习了如何替换属性,您已经知道如何获取样式属性,因此这是Hi的副本,你能告诉我,如果我想得到唯一的颜色属性,我将如何做???嗨,你能告诉我,如果我想得到唯一的颜色属性,我将如何做???
$css = $html->find('style')->innertext;
<div style="background:blue; color:white;"></div>
$css = $html->find('div[style]')->style;
find('css','div[style*="display:block;"] ')