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){"

前にさらに2つの円記号。

于 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 コードが破損しました。すべての言語で使用できるコードを編集する方法が必要です。

編集:WindowsではなくLinuxサーバーでこの問題が発生しています

助けてください!

于 2012-07-18T19:05:53.957 に答える