0

我正在尝试找到一种从字符串中获取标签并删除样式属性的方法。之后,我想添加自己的样式并保留以下文本。例如,我有:

<p><img alt="" src="images/epsth/arismagnisiakos.jpg" style="width: 600px; height: 405px;" /></p><p>&nbsp;</p><p>

end 最终结果应该是:

<p><img alt="" src="images/epsth/arismagnisiakos.jpg" style="width: 100%;" /></p><p>&nbsp;</p><p>

我没有成功地尝试过正则表达式,但似乎我太笨了,无法理解它的功能......

每一个帮助将不胜感激!来自希腊吉姆的问候

4

2 回答 2

3

你可以像这样通过正则表达式来做到这一点:

$str = '<p><img alt="" src="images/epsth/arismagnisiakos.jpg" style="width: 600px; height: 405px;" /></p><p>&nbsp;</p><p>';

$newStr = preg_replace('#<img (.+) style="(.+)" />#isU', '<img $1 style="width: 100%" />', $str);
于 2013-04-05T15:38:06.090 回答
1

要删除高度或其他一些属性:

$string = '<p><img alt="" src="images/epsth/arismagnisiakos.jpg" style="width: 600px; height: 405px;" /></p><p>&nbsp;</p><p' ;
$pattern = "/height:\s*\d*\s*(px|%);*/" ;
$new = preg_replace($pattern,"", $string) ;

echo htmlentities($new) ;

或者删除所有样式的东西并用自己的替换:

$string = '<p><img alt="" src="images/epsth/arismagnisiakos.jpg" style="width: 600px; height: 405px;" /></p><p>&nbsp;</p><p' ;
$pattern = "/style=[\'\"][^\"|^\']*[\'\"]/" ;
$own_style = "style='width: 50%'" ;
$new = preg_replace($pattern, $own_style, $string) ;

echo htmlentities($new) ;

通常RegExp在 HTML 标签上使用是一件坏事,应该避免,但在某些情况下可能适用。

于 2013-04-05T15:56:59.083 回答