如何使用 PHP 修复 HTML 中重复的名称和 ID?

赛尔索姆

我有另一个应用程序生成的 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用PHP和html修复表格的显示

来自分类Dev

如何修复HTML中的错误

来自分类Dev

如何修复php中的递归?

来自分类Dev

使用PHP Storm修复重复的CSS代码

来自分类Dev

如何使用PHP获取HTML元素的ID?

来自分类Dev

如何使用php查找html元素的id

来自分类Dev

使用HTML和CSS修复图像网格

来自分类Dev

如何使用 HTML 中的徽标修复文本对齐方式

来自分类Dev

如何修复此html能够分配给php变量?

来自分类Dev

如何修复info.php中的sqlsrv?

来自分类Dev

如何修复 php 中的 Datediff 语法

来自分类Dev

如何修复PHP中的登录功能

来自分类Dev

如何在 CodeIgniter 中修复 php foreach

来自分类Dev

如何修复php中不显示的图像?

来自分类Dev

使用php从html表中获取data-id html

来自分类Dev

如何在php和mysql中修复mysql大写查询

来自分类Dev

如何修复PHP amqp?

来自分类Dev

如何“修复” PHP工匠?

来自分类Dev

如何在VerifyCsrfToken.php第46行中修复TokenMismatchException:使用Ajax和laravel 5.0?

来自分类Dev

如何使用php在html输入名称中获取值

来自分类Dev

PHP,而循环表重复修复

来自分类Dev

如何使用 PHP 循环 HTML 名称值

来自分类Dev

如何修复与html和js的旋转图像重叠?

来自分类Dev

如何修复Jenkins HTML报告“校验和不匹配”?

来自分类Dev

如何修复重复的标签?

来自分类Dev

如何修复表格的重复

来自分类Dev

使用修复布局创建HTML和CSS视图

来自分类Dev

如何在Eclipse中修复HTML文件中的错误?

来自分类Dev

如何修复HTML表单大小?