urlエンコード/デコードメモ



PHPでのurlエンコード/デコードの覚書です。
$_GETでいろいろ変数を渡す時に使用しています。

例1 urlencode() の例
<?php
print '<a href="myphp?propr=', urlencode($userinput), '">';
?>

例2 urldecode() の例
$str = urldecode($_GET['str']);
print '$str';

注意:以下のようにいろいろ問題があるようですが、面倒なので
気にしていません。結構普通に動きます^^

PHPのコミュニティ ポータルサイト「PHPプロ!」より転載
HTML エンティティにマッチする変数については注意が必要です。 \&、\©、\£ のようなものがブラウザから送信された 場合、エンティティの実体がその変数名の代わりに使用されます。 これは明らかな問題点であり、W3C が何年も指摘し続けてきたことです。 リファレンスは、» http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 にあります。

PHP では、 .ini ディレクティブの arg_separator により引数のセパレータを W3C が推奨するセミコロンに変更することが可能です。残念なことに、多くの ユーザエージントはこのセミコロン区切り形式でデータを送信しません。 よりポータブルな方法としては、セパレータに & の代わりに & を使用するというものがあります。この場合、PHP の arg_separator を変更する必要はありません。セパレータを & のままにし、htmlentities() あるいは htmlspecialchars() で URL をエンコードしてください。
-------------転載ここまで

記事id:731 / 3973PV

関連記事