在我的代码中,我得到一个具有 html 标签的字符串,如下所示:
$string = '<div style="width:100px;">ABC 1234 <span> Test string, testing this string</span></div>';
现在,我使用 preg_replace 从所述字符串中删除了样式属性:
$string = preg_replace('/(<[^>]+) style=".*?"/i', '', $string);
删除 style 标签后,我设法删除了 style 属性,因此 div 标签最终看起来像<div>
. 这样做后我遇到的问题是,我现在>
在跨度的结束标记之后得到了一个多余的部分,所以字符串现在看起来像这样:
$string = '<div>ABC 1234 <span> Test string, testing this string</span> > </div>';
我的问题是,为什么我突然得到一个超额>
?我可以使用不同的正则表达式来摆脱 style 属性而不额外>
出现吗?或者有什么办法可以让我摆脱这个吗?
我尝试使用 str_replace 两次,如下所示:
$string = str_replace("\n", "", $string);
$string = str_replace(">>", ">", $string);
但这也不起作用。
我不是要删除 HTML 标签,只是样式部分。