Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ereg_替换代码_Php_Preg Replace_Ereg Replace - Fatal编程技术网

Php 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

我将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_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()已被弃用。它可以正常工作,谢谢