【问题标题】:How to replace php replace \ by \\ within PHP?如何在 PHP 中用 \\ 替换 php replace \?
【发布时间】:2012-06-22 15:41:30
【问题描述】:

有人知道如何将\ 替换为\\ 吗?

输入字符串:Télephone dsadad;'''´ ''''aa\

 php> $in =  "Télephone dsadad;'''´ ''''aa\";
 ... echo str_replace("\\","\\\\",$in);
Multiline input has no syntactic completion:
PHP Parse error:  syntax error, unexpected T_NS_SEPARATOR in Command line code on line 2

谢谢

【问题讨论】:

    标签: php string escaping


    【解决方案1】:

    嗯...和其他字符串一样吗?

    $out = str_replace("\\","\\\\",$in);
    

    唯一的区别是你必须对字符串中的每个\进行转义。

    【讨论】:

    • 为什么在不需要的时候使用双引号?使用单引号比双引号更有效,因为它们的内容不被评估,这也意味着您不需要转义反斜杠。
    • 你试过运行str_replace('\','\\',$in)吗?没想到。
    • 糟糕——我忘了​​你还得逃跑。但是,仍然不需要双引号。
    • $st = "电话 dsadad;'''´ ''''aa\"; ?
    • 查看您的代码,我认为答案是......只需输入另一个反斜杠。
    【解决方案2】:

    使用 str_replace:

    str_replace('/', '//', 'abc/def/xyz');
    

    输出:

    abc//def//xyz
    

    【讨论】:

    • 我想我在这里的答案中使用了反斜杠,请使用str_replace('\\', '\\\\', $str); 替换反斜杠。
    • $st = "电话 dsadad;'''´ ''''aa\"; ?
    • 您的输入字符串语法错误。它应该是 "Télephone dsadad;'''´ ''''aa\\" 而不是 "Télephone dsadad;'''´ ''''aa\"
    【解决方案3】:

    如果你只想做字符串替换:

    preg_replace("\\", "\\\\", $string);
    

    注意\ 是一个特殊字符,必须转义!

    但是,如果您对转义字符串感兴趣,PHP 有一些内置函数可以做到这一点:

    addslashes函数:

    addslashes($string);
    

    【讨论】:

      猜你喜欢
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2017-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 2015-11-01
      相关资源
      最近更新 更多