Recent posts:

PCやWebに関する便利な情報や使いこなし情報を紹介

JavaScriptとPHP間でURLをやりとりするブックマークレット(URLエンコード)

2020/11/29 更新

JavaScriptとPHPの間でURLをやり取りする場合にURLエンコードする際の関数のメモ。ブックマークレットからURLをサーバ側のPHPへ送るものを例として取り上げる。

JavaScriptとPHP間でURLをやりとりするブックマークレット(URLエンコード)

タイトルの通り、JavaScriptでURLエンコードし、PHP側でそれを受け取ってデコードするためのメモです(もちろんその逆も可能)。

今回は一例として、現在見ているページのURLをブックマークレット(JavaScript)からサーバのPHPへGETリクエストで送るものを考えます。


両者の間でURLをやり取りするために、URLエンコードを行います。

これにより、パラメータに含むことが出来ない(例えば&や?などは別の意味を持ってしまう)文字を含めることが出来ます。

結論から書くと、JavaScriptはencodeURIComponent()、PHPはrawurlencode()が対応しています。

従って今回の例では受け取り側のPHPではrawurldecode()を用いてデコードします。


今回の例をプログラムとすると以下のようになります。

ブックマークレット:

javascript:location.href="http://example.org/test.php?url="+encodeURIComponent(location.href);

PHP:

<?php
$foo = $_GET['url'];
$bar = rawurldecode( $_GET['url'] );

echo "受け取ったものをそのまま表示すると {$foo} です。";
echo "デコードすると {$bar} です。";
?>

ブックマークレットでは、example.org上のtest.phpのurlパラメータへ現在見ているページのURLを送っています。

PHPでは受け取ったURLを上ではそのまま、下ではデコードして表示しています。


このように、今回の例はそれだけでは意味を持ちませんが、組み合わせることでブックマークレットからURLを送ることが出来るようになる、というメモでした。

今回はこの辺で。

では、また…