【问题标题】:Php regex issue symbolsPHP正则表达式问题符号
【发布时间】:2020-05-11 16:10:10
【问题描述】:

在发送邮件功能中,我有解码标头的代码:

preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);

如果 in string 是一个符号,例如 ä (März) 那么它将返回一个空字符串。请帮助我,我该如何修复它(也可以与德语符号一起使用)? 谢谢!

【问题讨论】:

    标签: php regex preg-match


    【解决方案1】:

    只需为 unicode 添加/u 标志:

    preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/u', $str, $matches);
    #                                               here __^
    

    【讨论】:

      【解决方案2】:

      尝试在分隔符之外添加u 标志:

      $str="März";
      preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/u', $str, $matches);
      print_r($matches);
      

      如果您的 PHP 文件编码为 UTF-8,您还可以在模式中使用特殊字符:

      preg_match_all('/[Mäz]/u', $str, $matches);
      print_r($matches);
      

      你可以测试一下here

      【讨论】:

        猜你喜欢
        • 2013-05-26
        • 2011-08-13
        • 1970-01-01
        • 2011-10-17
        • 2017-03-18
        • 2011-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多