0

我知道这是个愚蠢的问题,但我无法为我的问题搜索任何内容。

我有$q = "This is\\same text";并且做

$q = stripslashes($q);

所以,$q现在等于"This issame text"!我怎样才能保存一个反斜杠?

谢谢你。

4

3 回答 3

2

剧本确实,它被告知,实际上。

$q中,双反斜杠计算为单个反斜杠(第一个反斜杠转义第二个反斜杠),然后将其剥离。

如果不评估元字符,则需要使用单引号:

$q = 'This is \\some text';
// String is now: This is \\some text

$q = stripslashes($q);
// String is now: This is \some text

编辑 根据您在迈克尔斯回答中的评论,您的输入中有多少有效的反斜杠可能会有些混乱。考虑以下输入:

$q1 = "This is\\\some \text";
$q2 = 'This is\\\some \text';

第一个实际上包含This is \\some <TAB>ext. 这是由于 PHP 保留了无效的控制字符。\s, 相反\t是无效的控制字符,因此保留在原地。

然而,第二个字符串实际上将包含单引号中的内容,因为没有应用评估。

于 2012-01-23T16:12:21.443 回答
0

实际上

$q = "This is\\same text";

包含一个反斜杠。

于 2012-01-23T16:13:29.743 回答
0

如果你想让一个反斜杠留在那里,加倍他

$q = "This is\same \\ text";

$q = stripslashes($q);

变得

This issame \ text
于 2012-01-23T16:13:56.857 回答