我有一个由不同的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>'
答案 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>