2012-07-17 2 views
2

파일에 저장하기 위해 아약스를 통해 PHP 코드를 보내려고합니다. 하지만 내가 좋아하는 뭔가를 보낼 때 :AJAX : 데이터에 백 슬래시를 보내는 방법은 무엇입니까?

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

가 백 슬래시 사라졌다!

이것은 내가 사용하고 코드입니다 : 사전에

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

감사합니다!

+1

백 슬래시가 리터럴 의미를 가지려면 이스케이프 처리해야합니다. 그냥 두 번 더한 다음'$ '를 제대로 벗어나기 위해 하나 더 추가하십시오. 'if (\\\ $ _ POST) ' –

답변

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

두 개의 백 슬래시가 앞에 있습니다.

+0

고맙습니다. 해결 방법 : [currentCode] .getValue(). (/ \\/g, "\\\\") – user1532587

+1

코드의 다른 영역에서 예상치 못한 결과가 발생할 수 있습니다. –

+0

어떻게 해결할 수 있을지에 대한 아이디어가 있습니까? 감사합니다 – user1532587

1

이것은 Ajax 문제가 아닙니다. 너 탈출을 오해했다. PHP에서 "\$"은 백 슬래시가 단지 이스케이프 기능을 가지고 있기 때문에 문자열 $으로 평가됩니다 (브라우저에 save.php를 열면 $도 표시됨). 문자 \$를 작성하려면, 먼저 \ 문자열을 작성해야합니다 (그러나 백 슬래시는 탈출해야합니다, 그래서 우리는 "\\"이 다음 "\$"$ 물품. 그래서

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

예상 생산하고 결과를하고. 또한

참조 http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

+0

파일을 편집 할 때 여전히 문제가 발생합니다. – user1532587

0

이 같은 자바 스크립트에서 정규 표현식 파일을 편집 할 필요가있을 때 나는 아직도 문제에 봉착 :

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

Uncaught SyntaxError: Unexpected token , 

.php 파일을 편집하기 위해 사용한 기능으로, 자바 스크립트 코드가 손상되었습니다. 모든 언어에 사용할 수있는 코드 편집 방법이 필요합니다.

편집 : 나는 창문

도와주세요에뿐만 아니라 리눅스 서버에서이 문제가 있어요 !

+0

Linux에서 추가 백 슬래시가 두 번 추가되었습니다! – user1532587

관련 문제