URL を次のように仮定します。
www.example.com/?val=1#part2
val1
PHP は、GET 配列を使用してリクエスト変数を読み取ることができます。
ハッシュ値part2
も読み取り可能ですか? それとも、これはブラウザと JavaScript だけですか?
URL を次のように仮定します。
www.example.com/?val=1#part2
val1
PHP は、GET 配列を使用してリクエスト変数を読み取ることができます。
ハッシュ値part2
も読み取り可能ですか? それとも、これはブラウザと JavaScript だけですか?
主な問題は、ブラウザがフラグメント部分を含むリクエストさえ送信しないことです。フラグメント部分はブラウザで解決されます。したがって、JavaScript を介してアクセスできます。
とにかく、 parse_url()を使用して、フラグメント部分を含む URL をビットに解析できますが、明らかにあなたのケースではありません。
http://localhost:8000/hello?foo=bar#this-is-not-sent-to-serverにアクセスする簡単なテスト
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Serving HTTP on 0.0.0.0 port 8000 ...
localhost - - [02/Jun/2009 12:48:47] code 404, message File not found
localhost - - [02/Jun/2009 12:48:47] "GET /hello?foo=bar HTTP/1.1" 404 -
サーバーは #appendage なしでリクエストを受け取ります。ハッシュ タグの後のものは、クライアントでの単なるアンカー ルックアップです。
例として、JavaScript を使用して URL 内で使用されているアンカー名を見つけることができます。
<script>alert(window.location.hash);</script>
PHP の parse_url() 関数は、フラグメント ( http://codepad.org/BDqjtXix )を含む必要な URL 文字列が既にある場合に機能します。
<?
echo parse_url("http://foo?bar#fizzbuzz",PHP_URL_FRAGMENT);
?>
Output: fizzbuzz
しかし、PHP はクライアントのみであるため、フラグメント情報を受け取ることはないと思います。
Javascript - as から取得できwindow.location.hash
ます。そこから、たとえば Ajax を使用してサーバーに送信するか、エンコードして URL に入れ、サーバー側に渡すことができます。
ハッシュがサーバーに送信されることはありません。
答えはノーだ。
ハッシュの主な目的は、ブックマークを定義したページの特定の部分にスクロールすることです。例: ページの読み込み時にこのパートまでスクロールします。
ブラウズは、その行の下に続くコンテンツの量に応じて、この行がページで最初に表示されるコンテンツになるようにスクロールします。
はい、javascript でアクセスできます。単純な ajax 呼び出しで魔法のように動作します。
ハッシュ値はクライアント側でのみ使用されると思うので、php では取得できません。
ただし、javascriptを使用してphpにリダイレクトできます。
URIの の後の部分は#
「フラグメント」と呼ばれ、定義上、クライアント側でのみ利用可能/処理されます ( https://en.wikipedia.org/wiki/Fragment_identifierを参照)。
クライアント側では、javaScript with を使用してこれにアクセスできますwindow.location.hash
。