ホームページ >バックエンド開発 >PHPチュートリアル >rawurlencode() 関数と urlencode() 関数の違いの簡単な分析_PHP チュートリアル
この記事では、rawurlencode() 関数と urlencode() 関数の違いと使い方を紹介します。
今日、オープンソースコードを読んでいると、URL エンコード関数 rawurlencode() を発見しました。普段の開発では主に urlencode() を使っていたので、これまで気付かなかったので、特別に勉強してみました。
実際、これら 2 つの関数の違いは非常に単純です。どちらも URL 内の英語以外の文字をエスケープし、その後に 2 つの 16 進数が続くものに置き換えます。 違いは、rawurlencode が 1994 International に準拠していることです。コード 標準メモ RFC 1738 によると、スペースのエスケープは '%20' であり、urlencode のエンコーディングは、POST フォーム データと同じようにスペースを "+" 記号にエスケープする従来の方法を実装しています。
例:
URL アドレス ソースが次の形式の場合: http://www.bKjia.c0m エンコードの違い
rawurlencode($url):
http%3A%2F%2Fityizhan.com%2FPHP%20%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B
URLコード($url):
http%3A%2F%2Fityizhan.com%2FPHP+%E7%BC%96%E7%A0%81%E5%8C%BA%E5%88%AB%2B
この 2 つの違いは、エンコードされた URL をデコードしたい場合、rawurldecode() と urldecode() の 2 つの関数を使用することができます。実際の開発で URL 形式の不一致を避けるために、rawurlencode() を使用して URL をエンコードすることをお勧めします。
同じ操作には Javascript のいくつかの違いもあります。JavaScript の URL エンコードとデコードを参照してください。これは、JavaScript でのエスケープ()、encodeURI()、encodeURIComponent() のエンコードの使用方法について説明しています
。 を発見しました。