【问题标题】:I don't understand how preg_replace_callback works, how to update from preg_replace我不明白 preg_replace_callback 是如何工作的,如何从 preg_replace 更新
【发布时间】:2018-05-10 05:52:49
【问题描述】:

使用 preg_replace_callback 会怎样?

$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})", $str);

【问题讨论】:

    标签: preg-replace deprecated preg-replace-callback


    【解决方案1】:

    如果我没记错的话,您想使用preg_replace_callback 而不是/e modifier

    如果您想向回调函数传递额外的参数,您可以使用use indentifier 或将回调包装在another function 中。

    第二个示例可能如下所示:

    $str = preg_replace_callback(
        '/\&\#([0-9]+)\;/m', function ($matches) use ($lo) {
            // function body with return statement
    }, $str
    );
    

    备注

    您的正则表达式\&\#([0-9]+)\; 将匹配𸽵 之类的字符串。我认为您不必逃避&#

    在您的代码中,您使用return strtoupper($matches[1], $lo);,但strtoupper 采用一个参数而不是两个参数。

    如果这是您想要匹配的内容,那么在运行 your code 时,您会看到 $matches[1] 包含 "233333",因此这将被称为 return strtoupper("233333");

    【讨论】:

      猜你喜欢
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多