urlencode
文字列を URL エンコードする
&reftitle.description;
stringurlencode
stringstring
この関数は、URL の問い合わせ部分に使用する文字列のエンコードや
次のページへ変数を渡す際に便利です。
&reftitle.parameters;
string
エンコードする文字列。
&reftitle.returnvalues;
-_. を除くすべての非英数文字が % 記号
(%)に続く二桁の16進数で置き換えられ、
空白は + 記号(+)にエンコードされます。
同様の方法で、WWW のフォームからポストされたデータはエンコードされ、
application/x-www-form-urlencoded
メディア型も同様です。歴史的な理由により、この関数は RFC 3986 エンコード(
rawurlencode を参照ください) とは異なり、
空白を + 記号にエンコードします。
&reftitle.examples;
urlencode の例
';
?>
]]>
&example.outputs;
]]>
urlencode および htmlentities の例
';
?>
]]>
&example.outputs;
]]>
&reftitle.notes;
HTML エンティティにマッチする変数については注意が必要です。
&、©、£ のようなものがブラウザから送信された
場合、エンティティの実体がその変数名の代わりに使用されます。
これは明らかな問題点であり、W3C が何年も指摘し続けてきたことです。
リファレンスは、&url.argsep; にあります。
PHP では、
.ini ディレクティブの arg_separator により引数のセパレータを W3C
が推奨するセミコロンに変更することが可能です。残念なことに、多くの
ユーザーエージントはこのセミコロン区切り形式でデータを送信しません。
よりポータブルな方法としては、セパレータに & の代わりに
& を使用するというものがあります。この場合、PHP の
arg_separator を変更する必要はありません。セパレータを &
のままにし、htmlentities あるいは
htmlspecialchars で URL をエンコードしてください。
&reftitle.seealso;
urldecode
htmlentities
rawurlencode
rawurldecode
RFC 3986