通常网站用户从Word或其他文件中复制和粘贴文本,我在PHP中使用这行代码来清理用户在文本区域中键入的文本内容:
$text= preg_replace('/style=\"[^\"]*/', '', $text);
该行删除了html标签中的所有样式,而不删除标签本身,因此我可以通过我的CSS文件以适当的方式设置它们。
现在我需要保持style="background:#99ff99;"
有效
这是我自己添加到文本中的一种风格
在清理所有标签时,如何告诉正则表达式不考虑background:#99ff99
?
非常感谢任何帮助
谢谢
答案 0 :(得分:0)
一种解决方案可能包括使用preg_replace_callback($pattern,$callback,$subject,...)
这样的事情应该有效:
$text = preg_replace_callback(
'/style=\"[^\"]*/',
function ($matches) {
return ($matches[0] == 'style="background:#99ff99;"'?$matches[0]:'');
},
$text
);