如何在PHP中调用addslashes()函数后返回第一个字符串

时间:2013-05-28 11:44:48

标签: php

我将字符串(Con\\ec't)分配到$user_val,如下所示

$user_val = addslashes(Con\\ec't);

接下来我想将$user_val写成另一个PHP文件作为全局常量。之后,带斜杠的字符串指定NAME常量

define ( 'NAME', 'Con\\\\ec\'t' );

我尝试使用下面的代码获取第一个字符串

 $mystring = stripslashes(NAME);

这给了我Con\ec't,但我希望获得Con\\ec't $mystring。如果你知道请帮助我。

3 个答案:

答案 0 :(得分:1)

define ( 'NAME', 'Con\\\\ec\'t' );
     

我尝试使用下面的代码

获得第一次刺痛
$mystring = stripslashes(NAME);
     

给了我Con's但我想得到$ mystring

在 strip_slashes之后,您无法获取Con\\ec't ,因为您的常量NAME 已经仅包含值Con\\ec't。< / p>

您在常量定义中使用的四个斜杠只会导致两个斜杠,因为一个\会转义下一个斜杠。

因此,两个反斜杠上的strip_slashes自然只会产生一个反斜杠。绝对没有“神奇”在这里。

答案 1 :(得分:0)

$mystring = preg_replace('/\\+/', '\\', NAME);

答案 2 :(得分:0)

这可能不完美,但这对我有用。

 $user_val = base64_encode(Con\\ec't);

并定义为

define ( 'NAME', base64_decode('aHR0cDovL3NheHdWIvc2VhcmNo'));

输出与用户输入值相同(Con\\ec't)这个解决方案有任何缺点请解释