为了账号安全,请及时绑定邮箱和手机立即绑定

PHP addcslashes() 函数语法

PHP addcslashes() 函数语法

PHP
弑天下 2023-03-26 16:30:03
PHP addcslashes() 函数的手册页给出了以下示例:addcslashes($not_escaped, "\0..\37!@\177..\377");转义 0 到 31 之间的所有 ASCII 字符(= 037 八进制)。用户建议进行以下改进:addcslashes($not_escaped, "\0..\37!@\@\177..\377");“保护原始的、无辜的反斜杠免受 stripcslashes 的侵害”。是否有关于参数格式的文档charlist?!@具体来说,第一个例子中的序列和!@\@第二个中的序列的解释是什么?
查看完整描述

1 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

我花了一些时间才找到明显的东西。

!@ 不是特殊序列,它们是应该转义的单个字符。addcslashes 的唯一特殊输入是用于范围的char..char 。

\0..\37!@\177..\377 转义范围0..\37,字符, 字符@和范围\177..\377

!@\@在我看来, 建议无效(不干净)。\@在 php 中没有被屏蔽(它后面没有像 \n 那样的特殊含义)并且它将是相同的。所以 \ 和 @(第二次)被添加到字符列表中。这背后没有魔法,也没有特殊的顺序。当你想转义所有不可打印的字符(0-37 和 177+)时,@、!、\ 的干净解决方案是:

"\0..\37!@\\\177..\377"


查看完整回答
反对 回复 2023-03-26
  • 1 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信