という変数の POST リクエストで URL を送信したいと考えていますsurl
。JavaScript でエンコードし、PHP でデコードするにはどうすればよいですか? たとえば、 の値は にsurl
なりますhttp://www.google.co.in/search?q=javascript+urlencode+w3schools
。
編集
言い忘れましたが、フォーム送信ではなく ajax リクエストです。
という変数の POST リクエストで URL を送信したいと考えていますsurl
。JavaScript でエンコードし、PHP でデコードするにはどうすればよいですか? たとえば、 の値は にsurl
なりますhttp://www.google.co.in/search?q=javascript+urlencode+w3schools
。
編集
言い忘れましたが、フォーム送信ではなく ajax リクエストです。
何もする必要はありません。そのままお送りください。ブラウザと PHP がすべてのエスケープとエスケープ解除を行います ( と を使用form.surl.value = surl; form.submit()
している場合$_POST['surl']
)。または、JavaScript を使用せずにプレーン フォームを使用することもできます (必要に応じて)。
henasraf のコメントに返信します。 これを試して。
<form id="form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"
onsubmit="this.via_js.value=this.via_plain_form.value;">
<input type="hidden" name="via_js"/>
<input type="text" name="via_plain_form" value="Paste you url here"/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if (isset($_POST['submit'])) {
var_export($_POST);
}
?>
の場合http://www.google.co.in/search?q=javascript+urlencode+w3schools
、出力します
array (
'via_js' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
'via_plain_form' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
'submit' => 'Submit',
)
使用encodeURIComponent(uri)
(エンコード用)およびdecodeURIComponent(uri)
デコード用、
例 (エンコーディング)。
var uri="http://w3schools.com/my test.asp?name=ståle&car=saab";
document.write(encodeURIComponent(uri));
出力
http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab
解読は読者に任されています。:-)
ソース: http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp
PHPに関しては、urlencode()
それとurldecode()
.