我无法用preg_replace_callback替换preg_replace,有人请为我做

时间:2017-09-04 21:19:45

标签: php debugging phpfox

我正在安装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']);

1 个答案:

答案 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']);