https://stackoverflow.com/a/1734255/1529630によるとencodeURIComponent
、 と同じですが、エスケープされてrawurlencode
い!*'()
ません。
function encodeURIComponent($str) {
$revert = array('%21'=>'!', '%2A'=>'*', '%27'=>"'", '%28'=>'(', '%29'=>')');
return strtr(rawurlencode($str), $revert);
}
しかし、その違いは重要ですか?
通常、私は次のようなものを使用します
- JSで
wrapper.innerHTML = '<a href="foo.php?bar=' + encodeURIComponent(myVar) + '">Link</a>';
- PHPで
echo '<a href="foo.php?bar=' . rawurlencode(myVar) . '">Link</a>';
次に、 でfoo.php
を使用すると、と$_GET['bar']
の違いにより、異なる結果を得ることができますか?encodeURIComponent
rawurlencode