【问题标题】:preg_replace_callback gives multiple errorspreg_replace_callback 给出多个错误
【发布时间】:2018-05-01 17:42:35
【问题描述】:

我在这一行得到一个错误:

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. 在第二个参数之后似乎有一个粗略的'2. 你说你得到了多个错误,但你只发布了一个。 3. 如消息所述,第二个参数必须是有效的callable 回调,而不是函数调用。请read the manual获取一些正确使用的例子。
  • 首先发布您的$data 和预期输出

标签: php preg-replace-callback


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 2023-03-24
    相关资源
    最近更新 更多