2012-11-25 5 views
1

나는 그것이 AJAX는 & PHP 코드는 변수를 얻을 수 있지만, 전송, 일, 데이터를 전송하는 내 자신의 AJAX 코드를 사용 :PHP + AJAX 전송 데이터 (링크) 문제

내가 링크 (예 보내려고

: http://abc.com/abc+/를) 또는 폴더 이름과 같은 var이 +이면 +없이 문자열을 반환합니다.

은 AJAX는 &data='+encodeURIComponent(data)+'로 데이터를 전송 및 PHP는 urldecode($data);

내 문제는 PHP 내 문자열에서 + 문자를 제거하지 않고 POST 데이터로부터 변수를 가져올 얻는 방법입니다 가져옵니다.

+1

PHP docs 당신은 URL 인코딩의 +를 시도를 제공합니다

은 모든에 대해 무엇을 보는가? –

답변

0

PHP에서 rawurldecode()을 사용하십시오. rawurldecode()은 더하기 기호 (+)를 공백으로 디코딩하지 않지만 urldecode()은 공백으로 디코딩하지 않습니다.

JavaScript가 플러스 문자를 리터럴 문자열 + 또는 인코딩 된 문자열 %2B으로 전송하는지 여부에 관계없이 PHP는이를 플러스 문자로 디코딩합니다.

0

+은 URL에서 사용될 때 특수 의미 문자이며 공백 ()으로 대체됩니다. 리터럴로 +을 전달하려면이 코드를 (%2b까지) 인코딩해야합니다. 일반적으로 문제를 피하려면 urlencode()을 통해 URL을 작성하는 데 필요한 모든 것을 전달해야합니다.

echo urlencode(' + '); // spaces around `+` 

+%2B+ 

RFC 3986에서 URL 인코딩에 대한 자세한 또는