我知道这是一个愚蠢的问题,但我不能为了解决我的问题而谷歌。
我有$q = "This is\\same text";
并且
$q = stripslashes($q);
所以,$q
现在等于"This issame text"
!我怎么能保存一个反斜杠?
谢谢。
答案 0 :(得分:2)
脚本实际上是这样做的。
在$q
中,双反斜杠计算为单个反斜杠(第一个反斜杠转义),然后将其剥离。
如果不评估元字符,您需要使用单引号:
$q = 'This is \\some text';
// String is now: This is \\some text
$q = stripslashes($q);
// String is now: This is \some text
编辑 根据您在Michaels的回答中的评论,您输入中有多少有效反斜杠可能会有一些混淆。请考虑以下输入:
$q1 = "This is\\\some \text";
$q2 = 'This is\\\some \text';
第一个实际包含This is \\some <TAB>ext
。这是因为PHP按原样保留了无效的控制字符。与\s
相对的\t
是一个无效的控制字符,因此保留在原位。
然而,第二个字符串在字面上会包含单引号中的内容,因为不会应用任何评估。
答案 1 :(得分:0)
实际上
$q = "This is\\same text";
包含一个反斜杠。
答案 2 :(得分:0)
如果你想要那个反斜杠应该留在那里,加倍他
$q = "This is\same \\ text";
$q = stripslashes($q);
成为
This issame \ text