Php 禁用HTML标记中的样式

Php 禁用HTML标记中的样式,php,html,Php,Html,如何禁用HTML标记中的样式以便 "<b style="color:red;">" “” 更改为 "<b>" “” 您可以使用正则表达式的强大功能 $input = '<span style="color:red;">Example</span>'; $html = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input); echo $html; $input='Exampl

如何禁用HTML标记中的样式以便

"<b style="color:red;">"
“”
更改为

"<b>"
“”

您可以使用正则表达式的强大功能

$input = '<span style="color:red;">Example</span>';
$html = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);

echo $html;
$input='Example';
$html=preg_replace('/(]+)style=“.*”?/i',“$1',$input);
echo$html;

这将输出
Example

最安全的方法是使用DOM解析器(例如),遍历所有文档以查找
style
属性并删除它们。

如果样式有点棘手(例如,在多行上,或包含引号),它将无法按预期工作这将只适用于单个标记。对于许多标记,您应该形成表达式,如
style=“[^”]*”
@tmuguet它不适用于换行符,但会处理
Example
,例如。@MarcellFülöp我用几个标记测试了我的表达式:
'Example

废话

@SteveFenton我认为它不适用于
示例
+1我真的不明白为什么会被否决。DOM只是一种方式…@bažmegakapa-1,因为它更多的是一个注释而不是一个答案。发布两行程序比实际编写繁琐的DOM遍历和操作代码更容易。@mario在我看来,如果你你认为这不是一个答案(我,嗯,甚至可能同意),有一个标志按钮。下一票按钮有“这个答案没有用”。“,虽然它显然很有用。@bažmegakapa自己无法对正则表达式的答案进行投票,因为这是副本中的一个精确副本。尽管我不同意Stackoverflow,但对所有meme都使用DOM。这个问题可以说是愚蠢的,因为我们不知道用例(随机HTML与模板输出),所以没有人说正则表达式或DOM是否更合适。(事实上,在我看来,为数百个短HTML片段启动libxml2是愚蠢的)。@mario+1关于这一评论,但不幸的是,我没有看到您在regex答案中提出的这些非常重要和聪明的观点。如果一个人是无知的,或者不知道他在做什么,最好使用DOM…我不能,因为我在我的手机上。