2

我正在尝试通过 ajax 发送 php 代码以便将其保存在文件中。但是当我发送类似的东西时:

...$buffer = "if(\$_POST){".chr(13).chr(10);...

反斜杠消失了!

这是我正在使用的代码:

$.post('save.php', {
            "c":  window[currentCode].getValue(),
            processData: false,
            "f": fileName
        }, function(data){
           ....
        });
        return false;
}

提前致谢!

4

3 回答 3

2
"if(\\\$_POST){"

前面还有两个反斜杠。

于 2012-07-17T17:58:17.427 回答
1

这不是 Ajax 问题。你误解了逃避。在 PHP 中,"\$"计算结果为字符串$,因为反斜杠仅具有转义功能($如果您在浏览器中打开 save.php,您也会看到)。要写字面量\$,你首先需要写\字符串(但反斜杠也必须被转义,所以我们有"\\",然后写成$"\$"所以这样做

$buffer = "...\\\$_POST...";

产生预期的结果。

另见http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

于 2012-07-17T18:00:11.827 回答
0

当我需要在 javascript 中使用正则表达式编辑文件时,我仍然遇到问题,如下所示:

function _basename(path) {
    return path.replace(/\\\\/g,'/').replace( /.*\\//, '' );
}

Uncaught SyntaxError: Unexpected token ,

我用来编辑 .php 文件的函数损坏了我的 javascript 代码。我需要一种编辑代码的方法,可以用于所有语言。

编辑:我只是在Linux服务器中而不是在Windows中遇到这个问题

请帮忙!

于 2012-07-18T19:05:53.957 回答