提问者:小点点

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、“\u utf8_to_html(“\1”)在/home/informag/public_html/filename中是有效的回调。第951行的php:/usr/local/cpanel/cgi sys/ea-php54

有没有调试的想法?


共1个答案

匿名用户

除了第二个参数末尾的行中有一个输入错误(额外的)之外,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);

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