Addslashes似乎有点混乱.给出以下2行代码
$name = "Dave's test";
$newName = addslashes($name);
Run Code Online (Sandbox Code Playgroud)
我期待 $ newName成为"Dave的测试"(我的单引号很好地逃脱了)
但是,我得到的是"Dave \\'的测试"(注意DOUBLE反斜杠).这与我在addslashes上可以找到的所有在线文档相矛盾 - 并且让我感到非常悲痛.
我通过error_log将addslashes结果转换为http错误日志之前和之后...
error_log("before=$name after=$newName");
Run Code Online (Sandbox Code Playgroud)
结果...
before=Dave's test after=Dave\\'s test
Run Code Online (Sandbox Code Playgroud)
注意 - 这是ajax过程的一部分,所以我无法真正"回应"结果.
任何有关为什么addlashes会在后退上加倍的见解都非常感激.
仅供参考:我在Linux下使用PHP 5.2.6,魔术报价为OFF.
php ×1