Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 可以从HTML中提取内联CSS吗?_Php_Html_Css_Dom - Fatal编程技术网

Php 可以从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('

使用,是否可以提取HTML文件的内联CSS

这个解析器如果是纯html,假设(如果我错了,请纠正我)它不能解析CSS标记。有没有其他方法可以提取html文件中的内联CSS?

这应该可以:

$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;"] ')