假设变量包含如下所示的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>
...
当然,它不仅仅由段落元素组成。
答案 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++;
}