preg_replace_callback会出现多个错误

时间:2018-05-01 17:42:35

标签: php preg-replace-callback

我在这一行收到错误:

return preg_replace_callback("/([\\xF-\xC\xF]{1,1}[\\xBF-\\xBF]+)/e", _utf8_to_html("\\")', $data);
  

[cgi:error] [pid 8213] [client 151.56.154.134:58848] AH01215:PHP警告:preg_replace_callback():需要参数2,'_ utf8_to_html(“\ 1”)',成为/中的有效回调第951行的home / informag / public_html / filename.php:/ usr / local / cpanel / cgi-sys / ea-php54

有想法调试吗?

1 个答案:

答案 0 :(得分:0)

除了行中存在拼写错误(第二个参数末尾的额外')之外,php实际上还需要"回调"参数可以是匿名函数,也可以是包含要调用的函数名称的字符串。在您的情况下,它看起来像:

function _utf8_to_html() {
    // some logic...
}

preg_replace_callback("/([\\xF-\xC\xF]{1,1}[\\xBF-\\xBF]+)/e", '_utf8_to_html', $data);

$replacement = "\\"
preg_replace_callback("/([\\xF-\xC\xF]{1,1}[\\xBF-\\xBF]+)/e", function() use ($replacement) {
    //some logic...
}, $data);

请注意,只有匿名函数解决方案才允许您在回调函数中使用多个参数。