PHP マニュアル
前のページ |  | 次のページ

# urlencode

(PHP 3, PHP 4 , PHP 5)

urlencode -- URL文字列のエンコード

## 説明

string urlencode ( string str)

-_.を除くすべての非英数文字が、%記号 (%)に続く二桁の数字で置き換えられ、 空白は+記号(+)にエンコードされます。 同様の方法で、WWWのフォームからポストされたデータはエンコード され、application/x-www-form-urlencoded メディア型も同様です。これは、RFC1738エンコード( rawurlencode()を参照してください)とは異なるも のですが、これは歴史的な理由によるもので、空白は+記号にエンコードさ れます。本関数は、URLの問い合わせ部分に使用する文字列のエンコードや 次のページへ変数を渡す際に便利です。

例 1. urlencode()の使用例

`echo '<a href="mycgi?foo=', urlencode($userinput), '">';`

> 注意: HTMLエンティティにマッチする変数については注意が必要です。 &amp、&copy、&poundのようなものがブラウザから送信さ れた場合、エンティティの実体が望ましい変数名の代わりに使用されま す。これは明らかな問題点であり、W3Cが何年も指摘し続けてきたこと です。リファレンスは、http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2にあります。PHPでは、 .ini ディレクティブのarg_separatorにより引数のセパレータをW3Cが 推奨するセミコロンに変更することが可能です。残念なことに多くのユー ザエージントは、このセミコロン区切り形式でデータを送信しません。 よりポータブルな方法としては、セパレータに& の代わりに &amp; を使用するというものがあります。この場合、PHPの arg_separatorを変更する必要はありません。セパレータは $amp; の ままにしますが、URLは htmlentities()(urlencode($data))によりエンコー ドして下さい。

> 例 2. urlencode()とhtmlentities()の例

> `echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">';`

urldecode(), htmlentities(), rawurldecode(), rawurlencode()も参考にしてください。

前のページ | ホーム | 次のページ
urldecode | 上に戻る | 変数用の関数(variable)