我有另一个应用程序生成的 HTML 有一些不一致:
<a href="#_ftn1" name="_ftnref1">some link</a>
<div id="ftn1">
content
</div>
<a href="#_ftn1" name="_ftnref1">another link</a>
<div id="ftn1">
another content
</div>
正如你所看到的,我在这里有一个不一致的地方,因为 id “ ftn1 ”已经被使用了两次。名称_ftnref1相同。
所以我想知道是否有一个库或本地方式来修复这些重复的 id 和名称,以“增加”它们的数字并避免重复。
提前致谢
首先你需要使用/下载这个库php-simple-html-dom-parser,所以尝试使用这个函数:
public function fixIdNames($html_original) {
$id_encontrados = [];
// Create DOM from string
$html = str_get_html($html_original);
$a_nodes = $html->find("div[id]");
foreach ($a_nodes as $key => $element) {
if (isset($id_encontrados[$element->id])) {
$id_encontrados[$element->id] = ++$id_encontrados[$element->id];
$element->id = preg_replace('/[0-9]+/', '', $element->id) . $id_encontrados[$element->id];
//$element->id = 'legal';
} else {
$id_encontrados[$element->id] = 1;
}
}
$a_nodes = $html->find("a[name]");
foreach ($a_nodes as $key => $element) {
if (isset($id_encontrados[$element->name])) {
$id_encontrados[$element->name] = ++$id_encontrados[$element->name];
$element->name = preg_replace('/[0-9]+/', '', $element->name) . $id_encontrados[$element->name];
//$element->id = 'legal';
} else {
$id_encontrados[$element->name] = 1;
}
}
return ((string) $html);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句