【问题标题】:PHP string length of addslashes添加斜杠的 PHP 字符串长度
【发布时间】:2013-09-10 10:36:33
【问题描述】:

谁能解释我如何在字符串变量中转义双引号 " 字符以使随后的字符串只有 1 个字符的长度?

使用添加斜杠返回 2 个字符:

$str = '"';
var_dump(addslashes($str));

字符串(2) "\""

但如果它是一个字符串文字,它只有 1 个字符:

var_dump("\"");

字符串(1) """

【问题讨论】:

  • var_dump('\"'); 带单引号

标签: php string special-characters


【解决方案1】:

在字符串文字中,斜杠是转义字符。所以\"的意思和"一样。

如果要在字符串文字中添加斜杠,则必须对斜杠进行转义:\\"

如果你使用addslashes,那么它也会在字符串中添加斜线字符

如果不使字符串变长,就无法将字符添加到字符串中。

【讨论】:

  • 谢谢昆汀。那么他们是一种确定 $str 是否需要斜杠的方法吗?而不是像这样不加选择地连接: "\\" 。 $str
  • @Globalz — 通过了解您将使用它的目的。
  • 有问题的字符串是用户生成的(为 csv 文件选择一个附件)。所以我不知道字符串是需要斜杠的特殊字符还是普通字符
  • 我不知道“csv 文件的附件”是什么,但一般来说,如果您向用户询问某些内容,则假设他们将在你要求的格式。如果你要求文本,然后将它转义为你需要的任何格式。如果你要求它预先转义,那么只需检查它是否有效。
  • @YourCommonSense 神秘且无益
【解决方案2】:

您将 PHP 代码 与纯数据混淆了。

\"

只是一个由 2 个字符组成的字符串

"\""

是一个 PHP 代码,根据 syntax rules 评估为单个 " 字符

【讨论】:

    猜你喜欢
    • 2013-06-18
    • 2013-05-29
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2011-01-12
    • 2011-01-08
    相关资源
    最近更新 更多