2011年7月27日水曜日

javascriptでurlエンコードしたものをphpでデコードする

どうも、俺@仕事中です。
相変わらずNodeやってます。

Node側でユーザの入力データを受け取り、それをphpへ渡すような事をする場合は
javascriptで入力データをURLエンコードしてphpでデコードを行う必要が出てきます。

javascriptには
escape(str);
encodeURI(str);
encodeURIComponent(str);
の3つエンコード関数があり
phpには
urldecode($str);
rawurldecode($str);
の2つデコード関数があります。

どうやらそれぞれエンコード/デコードのアルゴリズムが違うらしく
全くデータの受け渡しが出来なかったので、どれとどれの組み合わせだったらうまく動作するのか確認しようかな
と思ってたところ、やってくれてる方がいらっしゃいました。

JavaScriptとPHPのURLエンコード【JavaScript,PHP】:Programming Magic

このサイトを参考にして、javascriptでは
encodeURIComponent(str)
してからphpへ送り、
phpでは
rawurldecode($str);
すれば正しく受け渡しができました。感謝!!
逆の場合でも同じですね。


以上でぇぇえっぇぇす。

0 件のコメント: