将id属性添加到段落元素中

时间:2013-10-22 00:59:15

标签: php

假设变量包含如下所示的html标记:

<p> paragraph 1 </p>
<p> paragraph 2 </p>
...

我怎样才能把它变成这样的东西:

<p id="1" data-pic="someStaticText"> paragraph 1 </p>
<p id="2" data-pic="someStaticText"> paragraph 2 </p>
...

当然,它不仅仅由段落元素组成。

2 个答案:

答案 0 :(得分:0)

嗯,我在做some more research时想出来了:

$html_string = preg_replace_callback(
    "(<p(.*?)>)is",
    function($m) {
        static $id = 0;
        $id++;
        return "<p id=\"p".$id."\"data-pic=\"someStaticText\"".$m[1].">";
    },
$html_string);

答案 1 :(得分:-1)

您可以使用while循环,每次迭代替换第一个&lt; p&gt;字符串。

$id = 1;
while(strpos($html_string, '<p>') !== FALSE){
    $html_string = str_replace('<p>','<p id="'.$id.'" data-pic="someStaticText">',$html_string, 1);
    $id++;
}