PHP Addslashes 在转义单引号时添加双反斜杠

标签 php

<分区>

Addslashes 好像有点糊涂了。给定以下两行代码

$name = "Dave's test";
$newName = addslashes($name);

期望 $newName 是“Dave\'s test”(我的单引号很好地转义了)

但是,我得到的是“Dave\\'s test”(注意双反斜杠)。这与我在 addslashes 上可以找到的所有在线文档都相矛盾 - 这让我很伤心。

我正在通过 error_log 将 addslashes 之前和之后的结果转储到 http 错误日志中...

error_log("before=$name  after=$newName");

结果...

before=Dave's test  after=Dave\\'s test

注意 - 这是 ajax 过程的一部分,所以我不能真正“回显”结果。

非常感谢任何关于为什么 addslashes 会在反斜杠上加倍的见解。

仅供引用:我在 linux 下使用 PHP 5.2.6,魔术引号关闭。

最佳答案

看起来 error_log 正在内部调用 addslashes。在阅读了对我的原始问题的回应后,我创建了一个非常简单的脚本...

<?php
        $name = "Dave's test";
        $newName = addslashes($name);
        echo    "name=$name.   newName=$newName";
        error_log("name=$name.   newName=$newName");
?>

回显结果:

name=Dave's test. newName=Dave\'s test

error_log 的结果:

name=Dave's test.   newName=Dave\\'s test

非常感谢所有花时间阅读和评论此问题的人。这是我在 Stack Overflow 上提出的第一个问题,我对回复的速度感到震惊。多么棒的社区啊!

关于PHP Addslashes 在转义单引号时添加双反斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/708230/

相关文章:

php - 如何自动化 Paypal 付款

php - Laravel S3 图片上传会自动创建一个文件名的文件夹

php - 如果多个表中存在记录,则禁用删除按钮

php - CakePHP 2.0 基本身份验证始终提供 302 重定向而不是 401 未授权

php - 用于显示表中记录的 SQL 查询错误

格式化/缩进我的 HTML 代码的 PHP 函数/类?

php - Yii 中的动态渲染

php - Twig 的逻辑运算符是否对两个表达式都求值?

php - 如何根据用户的 session 显示用户的信用

php - Mozilla Firefox 中的 "The resources at was blocked by Safe Browsing"问题