2 个回答
去掉头和尾的字符在以下字符串中,是字符过滤,不是字符串过滤。还不清晰,在文件路径后加D2,看字符串尾部
[
    "D", ":", "\\", "备", "份", "2", DIRECTORY_SEPARATOR
]

https://www.php.net/manual/zh...
character_mask
可选参数,过滤字符也可由 character_mask 参数指定。一般要列出所有希望过滤的字符,也可以使用 “..” 列出一个字符范围。

当去掉 D:\备份2 后,因为转义字符 \ 的存在,所以这里被特殊处理了。

通过 json_encode 曲线转码后可以看到 \2 被解析成 Unicode 后为 \u0002

clipboard.png

再通过查 unicode 表可知 \u0002 为不可见字符。

clipboard.png

原则上来说, \2 也可能被解析为匹配中的 反向引用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏