用于提取 div 中完整内容的正则表达式
Regular expression to extract full content inside a div
如何提取 div 中的完整 html 内容?我试过这段代码,
$html= '<html>
<body>
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
</body>
</html>';
$attr = "id";
$value = "test";
$tag_regex = '/<div[^>]*'.$attr.'="'.$value.'">(.*?)<\/div>/si';
preg_match($tag_regex,$html,$matches);
echo $matches[0];
通过运行这段代码我得到了结果,
<div id="test">
<div id="mydiv1">Hello</div>
预期结果,
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
在我的代码中,正则表达式一直执行到第一次出现 </div>
。如何获得 <div id="test">
中的完整代码?
使用 DOMDocument:
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$result = $dom->saveHTML($div);
如何提取 div 中的完整 html 内容?我试过这段代码,
$html= '<html>
<body>
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
</body>
</html>';
$attr = "id";
$value = "test";
$tag_regex = '/<div[^>]*'.$attr.'="'.$value.'">(.*?)<\/div>/si';
preg_match($tag_regex,$html,$matches);
echo $matches[0];
通过运行这段代码我得到了结果,
<div id="test">
<div id="mydiv1">Hello</div>
预期结果,
<div id="test">
<div id="mydiv1">Hello</div>
<div id="mydiv2">How are you</div>
</div>
在我的代码中,正则表达式一直执行到第一次出现 </div>
。如何获得 <div id="test">
中的完整代码?
使用 DOMDocument:
$dom = new DOMDocument;
$dom->loadHTML($html);
$div = $dom->getElementById('test');
$result = $dom->saveHTML($div);