假设一个变量包含 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>
...
当然,它不仅仅是由段落元素组成的。
假设一个变量包含 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>
...
当然,它不仅仅是由段落元素组成的。
好吧,我在进行更多研究时发现了这一点:
$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);
您可以使用 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++;
}