PHP给出其内容的标签ID

时间:2015-03-26 12:46:10

标签: php preg-replace

我有一个由不同的html标签组成的变量:

$html = '<h1>Title</h1><u>Header</u><h2>Sub Title</h2><p>content</p><u>Footer</u>'

我想找到$ html变量中的所有u标签,并为它们提供其内容的ID。

它应该返回:

$html = '<h1>Title</h1><u id="header" >Header</u><h2>Sub Title</h2><p>content</p><u id="footer" >Footer</u>'

3 个答案:

答案 0 :(得分:1)

如果您想快速使用preg_replace(),可以使用$pattern = '~<u>([^<]*)</u>~Ui'; $replace = '<u id="$1">$1</u>'; $html = preg_replace($pattern, $replace, $html); ,或者如果您想以正确的方式进行操作,请了解DOMDocument

{{1}}

答案 1 :(得分:0)

您可以使用preg_replace。

$html = preg_replace('~<u>([^<]+)</u>~e','"<u id=\"".strtolower("$1")."\" >$1</u>"', $html);

e表示“评估”,它允许您将“strtolower”命令填入替换。

答案 2 :(得分:0)

如果符合您的需要,使用jquery这样做会很好Forien回答很好

here it goes to do it in jquery

你的HTML

<div id='specialString'>
    <h1>Title</h1><u>Header</u><h2>Sub Title</h2><p>content</p><u>Footer</u>
</div>

你的js

<script type="text/javascript">
     $('#specialString > ul').each(function() {
        $(this).attr('id', $(this).text());
    });
</script>