вы можете попробовать это: Если CSS на той же странице, вы можете попробовать это:
$html = file_get_contents('testing.html');
$dom = new DOMDocument();
$dom->loadHTML($html);
$div = $dom->getElementById('test');
if ($div->hasAttributes()) {
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
if(strcmp($name,"class") == 0){
$x=getStyle($dom->textContent,".$value{","}");
echo "<pre>";
print_r($x);
}
if(strcmp($name,"id") == 0){
$idCss=getStyle($dom->textContent,"#$value{","}");
echo "<pre>";
print_r($idCss);
}
}
}
function getStyle($string, $start, $end){
$string = ' ' . $string;
$ini = strpos($string, $start);
if ($ini == 0) return '';
$len = strpos($string, $end, $ini);
return substr($string, $ini, $len);
}
обновить стиль, который вы можете использовать.
$div->setAttribute('style', 'background-color:blue;');
echo $dom->saveHTML(); exit;.
testing.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<div id="test" class="stl" style="width:100px;">
</div>
</body>
</html>
<style>
.stl{
background-color:green;
}
</style>
выход:
.stl{
background-color:green;
}
, если вы ищете только стиль, который вы можете сделать это:
$html = file_get_contents('testing.html');
$dom = new DOMDocument();
$dom->loadHTML($html);
$div = $dom->getElementById('test');
if ($div->hasAttributes()) {
echo $div->getAttribute('style');//width:100px;
}
Вы можете прочитать атрибут стиля элемента, если он установлен, конечно. Но правила таблицы стилей отделены от них, они не являются частью DOM. – arkascha
попробуйте $ node-> getAttribute ('style'), он даст значение свойства style –
ОК, но как я могу обновить это свойство, я фильтрую строку для извлечения данных как «color: rgb (255, 0, 0))». Мне нужно это для «color: rgb (155,10,0)». Как я могу заменить тот же самый дом. –