説明
string
urlencode ( string str)
-_.を除ãã™ã¹ã¦ã®éžè‹±æ•°æ–‡å—ãŒã€%記å·
(%)ã«ç¶šã二æ¡ã®æ•°å—ã§ç½®ãæ›ãˆã‚‰ã‚Œã€
空白ã¯+記å·(+)ã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れã¾ã™ã€‚
åŒæ§˜ã®æ–¹æ³•ã§ã€WWWã®ãƒ•ォームã‹ã‚‰ãƒã‚¹ãƒˆã•れãŸãƒ‡ãƒ¼ã‚¿ã¯ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰
ã•れã€application/x-www-form-urlencoded
ãƒ¡ãƒ‡ã‚£ã‚¢åž‹ã‚‚åŒæ§˜ã§ã™ã€‚RFC1738エンコード(
rawurlencode()ã‚’å‚ç…§ã—ã¦ãã ã•ã„)ã¨ã®
é•ã„ã¯ã€æ´å²çš„ãªç†ç”±ã§ã€ç©ºç™½ãŒ+記å·ã«ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã•れるã“ã¨ã§ã™ã€‚
本関数ã¯ã€URLã®å•ã„åˆã‚ã›éƒ¨åˆ†ã«ä½¿ç”¨ã™ã‚‹æ–‡å—列ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã‚„
次ã®ãƒšãƒ¼ã‚¸ã¸å¤‰æ•°ã‚’渡ã™ã®ã«ä¾¿åˆ©ã§ã™ã€‚
例 1urlencode()ã®ä½¿ç”¨ä¾‹ echo '<a href="mycgi?foo=', urlencode($userinput), '">'; |
|
注æ„
HTMLエンティティã«ãƒžãƒƒãƒã™ã‚‹å¤‰æ•°ã«ã¤ã„ã¦ã¯æ³¨æ„ãŒå¿…è¦ã§ã™ã€‚
&〩〣ã®ã‚ˆã†ãªã‚‚ã®ãŒãƒ–ラウザã‹ã‚‰é€ä¿¡ã•
れãŸå ´åˆã€ã‚¨ãƒ³ãƒ†ã‚£ãƒ†ã‚£ã®å®Ÿä½“ãŒæœ›ã¾ã—ã„変数åã®ä»£ã‚りã«ä½¿ç”¨ã•れã¾
ã™ã€‚ã“ã‚Œã¯æ˜Žã‚‰ã‹ãªå•題点ã§ã‚りã€W3CãŒä½•年も指摘ã—ç¶šã‘ã¦ããŸã“ã¨
ã§ã™ã€‚リファレンスã¯ã€http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2ã«ã‚りã¾ã™ã€‚PHPã§ã¯ã€
.ini ディレクティブã®arg_separatorã«ã‚ˆã‚Šå¼•æ•°ã®ã‚»ãƒ‘レータをW3CãŒ
推奨ã™ã‚‹ã‚»ãƒŸã‚³ãƒãƒ³ã«å¤‰æ›´ã™ã‚‹ã“ã¨ãŒå¯èƒ½ã§ã™ã€‚残念ãªã“ã¨ã«å¤šãã®ãƒ¦ãƒ¼
ザエージントã¯ã€ã“ã®ã‚»ãƒŸã‚³ãƒãƒ³åŒºåˆ‡ã‚Šå½¢å¼ã§ãƒ‡ãƒ¼ã‚¿ã‚’é€ä¿¡ã—ã¾ã›ã‚“。
よりãƒãƒ¼ã‚¿ãƒ–ãƒ«ãªæ–¹æ³•ã¨ã—ã¦ã¯ã€ã‚»ãƒ‘レータã«& ã®ä»£ã‚りã«
& を使用ã™ã‚‹ã¨ã„ã†ã‚‚ã®ãŒã‚りã¾ã™ã€‚ã“ã®å ´åˆã€PHPã®
arg_separatorを変更ã™ã‚‹å¿…è¦ã¯ã‚りã¾ã›ã‚“。セパレータ㯠$amp; ã®
ã¾ã¾ã«ã—ã¾ã™ãŒã€URLã¯
htmlentities()(urlencode($data))ã«ã‚ˆã‚Šã‚¨ãƒ³ã‚³ãƒ¼
ドã—ã¦ä¸‹ã•ã„。
例 2urlencode/htmlentities()ã®ä¾‹ echo '<a href="mycgi?foo=', htmlentities(urlencode($userinput)), '">'; |
|
urldecode(),
htmlentities(),
rawurldecode(),
rawurlencode()ã‚‚å‚考ã«ã—ã¦ãã ã•ã„。