0

假设一个变量包含 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>
...

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

4

2 回答 2

0

好吧,我在进行更多研究时发现了这一点:

$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);
于 2013-10-22T02:38:55.090 回答
-1

您可以使用 while 循环,每次迭代替换字符串的第一个 <p>。

$id = 1;
while(strpos($html_string, '<p>') !== FALSE){
    $html_string = str_replace('<p>','<p id="'.$id.'" data-pic="someStaticText">',$html_string, 1);
    $id++;
}
于 2013-10-22T01:28:42.513 回答