ホームページ  >  記事  >  バックエンド開発  >  js および php_PHP で URL エンコードを処理する方法のチュートリアル

js および php_PHP で URL エンコードを処理する方法のチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:36:48986ブラウズ

この記事では、js と php が URL エンコードをどのように処理するかを主に紹介します。必要な友達は参考にしてください。 解決策: js を使用して、URL 内の中国語文字をエスケープ エンコードします。​ ​ コードは以下のように表示されます: ​ これは、リンクをクリックすると有効になります。 ​ 引用: http://127.0.0.1/shop/product_list.php?p_sort=PHP%u5F00%u53D1%u8D44%u6E90%u7F51 ​ このような効果が発生しており、PHPのurldecode()やbase64_decode()を使用してデコードできないことは明らかです。​ ​ 解決策として、PHP を使用して逆解関数を作成します。 ​ コードは以下のように表示されます: 関数 js_unescape($str){ $ret = ''; $len = strlen($str); for ($i = 0; $i >12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f)); $i += 5; } ​ else if ($str[$i] == '%'){ $ ret。= urldecode(substr($ str、$ i、3)); $i += 2; } else $ret .= $str[$i]; } } $ret を返します。 } ​ ​ ​ JS エンコードは自動的に UTF-8 に変換されるため、正しい結果を得るにはエンコードを変換する必要があります。変換しないと中国語の文字化けが発生します。​ コードは以下のように表示されます: print iconv('utf-8', 'gb2312', js_unescape($_REQUEST['p_sort'])); ​ ​ この時点で、js のエスケープ エンコーディングを正常にデコードできました。​ ​ さらに、PHP を使用して js のエスケープ エンコーディングを実装する関数を見つけました。 ​ コードは以下のように表示されます: 関数 phpescape($str){ $sublen=strlen($str); $retrunString=""; for ($i=0;$i=127){ $tmpString=bin2hex(iconv("gb2312","ucs-2",substr($str,$i,2))); //$tmpString=substr($tmpString,2,2).substr($tmpString,0,2); これはウィンドウでオンにする必要がある場合があります。 $retrunString.="%u".$tmpString; $i++; } それ以外 { $retrunString.="%".dechex(ord($str[$i])); }} $retrunString を返します。 }

http://www.bkjia.com/PHPjc/737707.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/737707.html技術記事この記事では主に、js と php が URL エンコードを処理する方法を紹介します。必要な場合は、次の解決策を参照してください。 js を使用して URL 内の中国語文字をエスケープします。コードは次のとおりです: a hr...