$ent_check = empty($modSettings['disableEntityCheck']) ?
array('preg_replace_callback(\'~(&#(\d{1,7}|x[0-9a-fA-F]{1,6});)~e\', \'$func[\\\'entity_fix\\\'](\\\'\\2\\\')\', ', ')') :
array('', '');
Warning: preg_replace_callback(): Requires argument 2, '$func['entity_fix']('\2')', to be a valid callback in...
我不太清楚在这做什么。我会非常感谢任何比我聪明的人的帮助......
答案 0 :(得分:2)
这里的第一个问题是意图。好吧,传递给preg_replace_callback($arg1, $arg2...)
的第二个论点预计是 Callable 。这就是你有这个错误的原因。目前还不清楚你的代码在哪里,但也许下面的代码可以提供更多的亮点,并帮助你重新思考/澄清你的问题,意图+目标或重新访问你的代码。考虑一下:
<?php
$string = "ৎ whatever ᛮ again whatever ọ";
$modSettings = array('disableEntityCheck'=>array());
$func = array(
"fix_stuff" => function($param=20){ echo $param;},
"do_stuff" => function($param=10){ echo $param;},
"entity_fix" => function($matches ){ return $matches[0] . "YES!!! ";},
);
$ent_check = empty($modSettings['disableEntityCheck']) ? array(preg_replace_callback('#\d#', $func['entity_fix'], $string )) : array('', '');
var_dump($ent_check);
// DISPLAYS
array (size=1)
0 => string 'YES!!! 5YES!!! 1YES!!! 0YES!!! whatever YES!!! 8YES!!! 7YES!!! 0YES!!! again whatever YES!!! 8YES!!! 8YES!!! 5YES!!! '
请注意,在上面的代码中,传递给preg_replace_callback
的第二个参数是一个函数 虽然作为 参考 <传递strong> 到&#39; entity_fix&#39;数组的键:$ func 。这是为了强调这样一个事实,即也可以以这种方式传递第二个论点。希望这里给你一点小小的启动; - )
祝你好运!!!