.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 5
.
<< Prev
HTTP関連関数
« INDEX »
PHP WEB要素編
Next >>
HTML関連関数
作成日:2006/05/18

2A.3 URL関数

構文説明
string urlencode
( string str )

string urldecode
( string str )

urlencode() では、ハイフン( - )、アンダースコア( _ )、 ピリオド( . )を除くすべての非英数文字が、 パーセント記号( % )に続く二桁の数字で置き換えられ、 空白はプラス記号( + )にエンコードされます。

urlencode() のエンコード方法は、URLを規定した RFC1738 のエンコード方法とは異なるものですが、 歴史的な理由により、空白は+記号にエンコードされます。 urlencode() はURLの問い合わせ部分に使用する文字列のエンコードを行います。

用例:
echo '<a href="sample.php?name=', urlencode($name), '">'; 

urldecode() は urlencode() の逆変換です。

string rawurlencode
( string str )

string rawurldecode
( string str )

rawurlencode() では、ハイフン( - )、アンダースコア( _ )、 ピリオド( . ) を除くすべての非英数文字が、 パーセント記号( % )に続く二桁の数字で置き換えられます。

rawurlencode()のエンコード方法、URLを規定した RFC1738 で定められたエンコーディング方法と同じです。

rawurldecode() は rawurlencode() の逆変換です。

string base64_encode
( string data )

string base64_decode
( string encoded_data )

base64_encode()は、data をbase64方式でエンコードして返します。

base64_decode() は base64_encode() の逆変換です。



補足:URLエンコード

HTTPのGETメソッドによりデータを渡す場合、 データ中に区切り文字( & = )があると問題が発生します。 データが data=abc という場合は 、 data abc というデータですが 、 data=a=c と記述された場合は 、 data a=c と解釈できないからです。 この問題を解決するためにURLエンコードという手法を使い、データ部を特殊文字に置き換える事によって解決します。 これががURLエンコードです。

補足:base64エンコード

1993年に電子メールを拡張するための MIME( Multipurpose Internet Mail Extension ) 規格が制定されたましたが、 バイナリファイルを送信するための手順が決まっているにもかかわらす8bitコードを送る事は許されていませんでした。 そこでバイナリコードを7bitコードに変換して送信する方法が考案されました。これがbase64です。

base64は、変換元となるバイナリファイルから順に3byteずつ取り出し、その3byte(24bit)を上位から6bitずつに分け、 その6bitデータを変換テーブルに従って変換し、結果として4byteのデータを作ります。 取り出す元データが3byteに満たなくなった場合、変換に最低必要な6ビットを確保するために足りないビットを0で埋めます。 そして結果が4byteに満たない分だけイコール記号( = )で補います。 従って、変換後のサイズは必ず4の倍数になります。base64の変換テーブルは以下のとおりです。

変換前変換後
0〜25'A'〜'Z'
26〜51'a'〜'z'
52〜61'0'〜'9'
62'+'
63'/'

変換例:
'Hello' →'SGVsbG8='
H (0x48)e (0x65)l (0x6c)l (0x6c)o (0x6f)
0100100001100101011011000110110001101111
010010 000110 010101 101100 011011 000110111100
S G V s b G 8 =
<< Prev
HTTP関連関数
« INDEX »>
Page Top
Next >>
HTML関連関数

.