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']の違いにより、異なる結果を得ることができますか?encodeURIComponentrawurlencode