preg_replace_callback 给出多个错误

preg_replace_callback gives multiple errors

我在这一行遇到错误:

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 Warning: preg_replace_callback(): Requires argument 2, '_utf8_to_html("")', to be a valid callback in /home/informag/public_html/filename.php on line 951: /usr/local/cpanel/cgi-sys/ea-php54

有调试的想法吗?

除了行中有错字(第二个参数末尾有额外的 ')之外 php 实际上期望 "callback" 参数是匿名的包含要调用的函数名称的函数或字符串。在您的情况下,它看起来像:

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);

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