はじめに
例えば
https://example.com#abcde
というページを表示している時に「#abcde」の部分を取得したいことがあります。
この「#abcde」の部分はフラグメントと呼ばれます。
フラグメントが取得できると何が嬉しいかというと、例えばフラグメントによってページを読み込んだ直後にスクロールさせつつ、<head>の<meta>要素もそれに合わせた内容に書き換えることもできます。
PHPに詳しい方なら$_SERVER[xxx]でなんとかできそうだな、とピンとくると思うのですが、あれこれ調べてみた結論としてはPHPでは実現することができません。
じゃあ他の方法はというとJavaScriptでは下記のように簡単に実装できる。
const output = location.hash; // '#abcde'
要するにフラグメントはクライアントサイドのための文字列であるということだと思います。
じゃあどうするのか
簡単な代替方法としてはフラグメントと合わせてクエリパラメータ(GETパラメータ)を使う方法です。
例えば
https://example.com?q=abcde
としてGETで受け取ってPHPで処理をする方法です。
いやいやそうじゃなくて、それをやった上でフラグメントも欲しいのだという場合は
https://example.com?q=abcde#abcde
とすれば良いです。
最後に
プログラマーな気になる言語年収ランキングをまとめました。
ぜひ合わせてご覧ください。