我正在安装phpfox脚本,安装后显示以下错误,
警告:preg_replace():不再支持/ e修饰符,而是使用preg_replace_callback - include / library / phpfox / setting / setting.class.php(321)
我刚接触到代码,我无法将语法更改为preg_replace_callback
所以我正在编写下面的代码,请转发给我,谢谢。 1
$aRow['value_actual'] = preg_replace("/s:(.*):\"(.*?)\";/ise", "'s:'.strlen('$2').':\"$2\";'", $aRow['value_actual']);
2
preg_replace("/\s+/", "", $_SERVER['HTTP_ACCEPT_ENCODING']
3
preg_replace("/(.*?)\.(.*?)$/i", ".$2", $_SERVER['HTTP_HOST']
请转换第4个。
4
preg_replace("/s:(.*):\"(.*?)\";/ise", "'s:'.strlen('$2').':\"$2\";'", (isset($aRow['user_group_id2']) && isset($aRow[$aRow['user_group_id']])) ? $aRow[$aRow['user_group_id']] : $aRow['value_actual']);
答案 0 :(得分:0)
2和3没有e修饰符。没事做。一次使用:
$aRow['value_actual'] = preg_replace_callback(
'/s:(.*):\"(.*?)\";/is',
function ($m) { return "s:".strlen($m[2]).':"'.$m[2].'";';},
$aRow['value_actual']);
如果您想要解释其中任何一个,请更新您的问题。如果你不这样也没关系。
4
preg_replace("/s:(.*):\"(.*?)\";/ise", "'s:'.strlen('$2').':\"$2\";'",
(isset($aRow['user_group_id2']) && isset($aRow[$aRow['user_group_id']])) ?
$aRow[$aRow['user_group_id']] : $aRow['value_actual']);
变为:
preg_replace("/s:(.*):\"(.*?)\";/is",
function ($m) { return "s:".strlen($m[2]).':"'.$m[2].'";';},
(isset($aRow['user_group_id2']) && isset($aRow[$aRow['user_group_id']])) ?
$aRow[$aRow['user_group_id']] : $aRow['value_actual']);