如何使用PHP简单HTML DOM解析器将所有ul和li标记替换为div?

2022-03-29 00:00:00 php preg-match simple-html-dom

好的,我想使用PHP简单的HTMLDOM解析器来创建一个"网站动员器"。在目前阶段,我想-

  1. 将所有‘ul’和‘li’标记更改为‘div’标记和
  2. 将所有‘table’元素(例如table、tr、td、th)更改为div。我尝试了通过以下方式解决第一个问题:

$html=new new simple_html_dom();
$html>load_file($sourceurl);

$div="div";
foreach ($html->find('ul') as $element) {  
 $element=$div;
 }

它看起来确实很枯燥,但我找不到任何其他解决方案。我不鼓励使用preg_match,尽管我不知道它是否能给我提供所需的输出。任何帮助都将不胜感激。


解决方案

$html=new new simple_html_dom();
$html>load_file($sourceurl);

$replace="ul,li,table,tr,td,th";  
foreach($html->find($replace) as $key=>$element){
    $html->find($replace,$key)->outertext="<div>".$element->innertext."</div>"
}
这将替换$htmlDOM中从$replace数组到<div>的所有元素,而不会更改这些标记的内容。所有内容都存储在$htmlDOM中。

如您所见,您无法使用$element更改$html中的任何内容,即使使用$element作为引用,因此您必须直接访问$html

相关文章