0

由于通常网站用户从 Word 或其他 rte 复制和粘贴文本,我在 PHP 中使用这行代码来清理用户在文本区域中键入的文本内容:

$text= preg_replace('/style=\"[^\"]*/', '', $text); 

该行从 html 标签中删除所有样式,而不删除标签本身,因此我可以通过我的 CSS 文件以适当的方式设置它们的样式。
现在我需要保持style="background:#99ff99;"有效。
这是我自己添加到文本中的一种样式。
我如何告诉正则表达式background:#99ff99在清理所有标签时不要考虑?任何帮助将不胜感激。
谢谢

4

1 回答 1

0

一种解决方案可能包括使用preg_replace_callback($pattern,$callback,$subject,...)

像这样的东西应该工作:

$text = preg_replace_callback(
    '/style=\"[^\"]*/',
    function ($matches) {
        return ($matches[0] == 'style="background:#99ff99;"'?$matches[0]:'');
    },
    $text
);
于 2013-07-12T11:06:34.643 回答