PHP 函数弃用,ereg_replace更改为preg_replace


php function deprecation, changing ereg_replace to preg_replace

if ($js_enabled == "Y") {
    $qry_string = ereg_replace("(&*)js=y", "", $QUERY_STRING);
    $js_update_link = $PHP_SELF."?".($qry_string?"$qry_string&":"")."js=n";
}
else {
    $qry_string = ereg_replace("(&*)js=n", "", $QUERY_STRING);
    $js_update_link = $PHP_SELF."?".($qry_string?"$qry_string&":"")."js=y";
}

ereg_replace已被弃用,我想将其切换到preg_replace,但正则表达式会有所不同,对吗?

我将如何修补它?

if ($js_enabled == "Y") {
    $qry_string = preg_replace("/(&*)js=y/", "", $QUERY_STRING);
    $js_update_link = $PHP_SELF."?".($qry_string?"$qry_string&":"")."js=n";
}
else {
    $qry_string = preg_replace("/(&*)js=n/", "", $QUERY_STRING);
    $js_update_link = $PHP_SELF."?".($qry_string?"$qry_string&":"")."js=y";
}

preg速度更快,并且使用 PERL 样式的语法(与旧的 Postfix 样式相反(,因此您可能需要在表达式中进行一些细微的调整。