ホームページ  >  記事  >  バックエンド開発  >  php urlencode と rawurlencode_PHP の違いの概要チュートリアル

php urlencode と rawurlencode_PHP の違いの概要チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:15:05967ブラウズ

phpでは、rawurlencodeとrawurlencodeは両方とも文字をエンコードします。知る必要がある友人はそれを参照してください。 urlencode の目的は、文字列をエンコードし、元の文字列内の「-_」を除くすべての非英数字をパーセント記号 (%) とその後に続く 2 つの 16 進数に置き換えることです。ただし、歴史的な理由によるものです。スペースが + 記号に置き換えられるということです。 Rawurlencode は実際には urlencode と同じであり、文字列のエンコードにも使用されます。唯一の違いは、RFC1738 エンコードを使用することです。つまり、スペースは %20 に置き換えられます。

対応するデコード関数は urldecode と rawurldecode です。公式 Web サイトの手順を参照すると、urldecode デコードによって与えられたエンコード文字列内の %## とプラス記号 ('+') はスペース文字にデコードされます。 rawurldecode は文字列内のパーセント記号 (%) をデコードします。 2 ビットの 16 進数。 2 つの違いがあります。まず、urldecode はパーセント記号 (%) の後の任意の 2 文字をデコードしますが、rawurldecode はパーセント記号 (%) のみをデコードします。 2 番目の 16 進数の文字 (0-9A-F) がデコードされ、urldecode は + 記号をスペースにデコードします。

PHP の 2 つの関数の公式の紹介を見てみましょう。

urlencode — URL 文字列をエンコードします

バグを報告する 説明

文字列 urlencode (文字列 $str)
この機能を使用すると、文字列をエンコードして URL のリクエスト部分で使用することが簡単になり、次のページに変数を渡すことも簡単になります。

バグパラメータを報告する

ストラ

エンコードする文字列。

戻り値のバグを報告する

-_ を除くすべての非英数字文字がパーセント記号 (%) に置き換えられ、その後に 2 つの 16 進数が続き、スペースがプラス記号 (+) としてエンコードされた文字列を返します。このエンコーディングは、WWW フォーム POST データのエンコーディングと同じであり、application/x-www-form-urlencoded メディア タイプと同じエンコーディングです。歴史的な理由により、このエンコードは、スペースをプラス記号 (+) としてエンコードする点で RFC1738 エンコード (rawurlencode() を参照) とは異なります。

コードは次のとおりですコードをコピー
例 #1 urlencode() の例

echo '';
?>

例2 urlencode() と htmlentities() の例

$query_string = 'foo=' .urlencode($foo) .urlencode($bar);
echo '
';
?>

rawurlencode — RFC 1738 に従って URL をエンコードします

バグを報告する 説明

文字列 rawurlencode ( string $str )
» RFC 3986 エンコーディングに従って指定された文字。

バグパラメータを報告する

ストラ

エンコードする URL。

バグの戻り値を報告する
-_ を除くすべての非英数字をパーセント記号 (%) に置き換えた文字列を返します。その後に 2 桁の 16 進数が続きます。これは、» RFC 3986 で説明されているエンコーディングであり、リテラル文字が特別な URL 区切り文字として解釈されないように保護し、トランスポート メディア (一部のメール システムなど) で使用される文字変換によって URL 形式が文字化けしないようにすることを目的としています。

コードは次のとおりですコードをコピー デコード関数の上記の説明から、urlencode または rawurlencode を使用してエンコードされたものはすべて urldecode を使用してデコードできることが推測できます。ただし、元の文字列にスペースが含まれている場合、urlencode でエンコードされた文字列は rawurlencode でデコードされます。元の文字列から。
例 #1 FTP URL にパスワードを含める

echo '';
?>
上記のルーチンは次のように出力します:

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628888.html技術記事 PHP では、rawurlencode と rawurlencode はどちらも文字をエンコードします。知りたい人は参考にしてください。 urlencode の使用...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。