Php ereg_替换代码
我将php更新为5.3,我的ereg_替换出现问题Php ereg_替换代码,php,preg-replace,ereg-replace,Php,Preg Replace,Ereg Replace,我将php更新为5.3,我的ereg_替换出现问题 $txt = ereg_replace("<(/)?(font|span|div|del|ins)[^>]*>","",$txt); $txt = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>","<\\1>",$txt); $txt = ereg_repla
$txt = ereg_replace("<(/)?(font|span|div|del|ins)[^>]*>","",$txt);
$txt = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>","<\\1>",$txt);
$txt = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>","<\\1>",$txt);
$txt=ereg_replace(“]*>”,“,$txt”);
$txt=ereg|U replace(“]*)(class | lang | style | size | face)=(\“[^\”]*\“[^']*'[^>]+)([^>]*)>,”,$txt);
$txt=ereg|U replace(“]*)(class | lang | style | size | face)=(\“[^\”]*\“[^']*'[^>]+)([^>]*)>,”,$txt);
如果我将ereg\u replace
更改为preg\u replace
我会收到警告:
消息:preg_replace()[function.preg replace]:未知修饰符']'
有人能帮我修复preg_replace吗?这是因为您根本没有模式分隔符。你需要添加它们
$txt = ereg_replace("<(/)?(font|span|div|del|ins)[^>]*>","",$txt);
$txt = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>","<\\1>",$txt);
$txt = ereg_replace("<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>","<\\1>",$txt);
试试这个
$pattern1 = '#<(/)?(font|span|div|del|ins)[^>]*>#';
$pattern2 = '#<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>#';
$txt = preg_replace($pattern1, '', $txt);
$txt = preg_replace($pattern2, '<\\1>', $txt);
$pattern1='#]*>#;
$pattern2='#]*)(class | lang | style | size | face)=(\“[^\”]*\“|”[^']*”[^>]+)([^>]*)>#;
$txt=preg_replace($pattern1,,$txt);
$txt=preg_replace($pattern2,,$txt);
但更好的是,完全不要使用正则表达式来解析这样的HTML;
$txt = preg_replace("~<(/)?(font|span|div|del|ins)[^>]*>~","",$txt);
$txt = preg_replace("~<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>~","<\\1>",$txt);
$txt = preg_replace(~"<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>~","<\\1>",$txt);
$txt=preg|u replace(“~]*)(class | lang | style | size | face)=(\“[^\”]*\“[^']*'[^>]+)([^>]*>,”,$txt);
$txt=preg|u replace(~“]*)(class | lang | style | size | face)=(\“[^\”]*\“[^']*'[^>]+)([^>]*>,”,“,$txt);
我已将分隔符(~)添加到此表达式中。请尝试。为什么您要从
ereg\u replace
更改为preg\u replace
?ereg\u replace()已被弃用。它可以正常工作,谢谢