1

私は自分のAJAXコードを使用してデータを送信しますが、それは機能し、AJAXが送信され、PHPコードは変数を取得しますが、次のようになります。

リンク(例: http ://abc.com/abc+/ )またはvar like folder nameを送信しようとすると、 。+なしの文字列が返されます+

AJAXはとしてデータを送信し&data='+encodeURIComponent(data)+'、PHPはurldecode($data);

+私の問題は、文字列からcharを削除せずに、PHPがPOSTデータから変数を取得する方法です。

4

2 に答える 2

0

rawurldecode()PHPで使用します。rawurldecode()プラス記号(+)をスペースにデコードしませんが、デコードurldecode()します。

このように、JavaScriptがプラス文字をリテラル文字列として送信するか+、エンコードされた文字列として送信するかにかかわらず%2B、PHPはそれをプラス文字としてデコードします。

于 2012-11-25T17:43:22.683 に答える
0

+URLで使用され、スペース()を置き換える場合の特殊な意味の文字です。文字通り渡したい場合+は、それを(に)エンコードする必要があり%2bます。urlencode()一般に、問題を回避するために、URLの構築に使用されるものはすべて常に渡す必要があります。

それがすべてについて何であるかを見てください:

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

与える

+%2B+

RFC3986またはPHPドキュメントのURLエンコーディングの詳細

于 2012-11-25T17:43:40.220 に答える