8

URL のハッシュ部分を PHP 変数として保存する方法を見つけようとしています。このアイデアは少し変わっていますが、ご了承ください...

次の URL から「場所」フラグメントを抽出し、PHP 変数として保存したいと考えています。

http://www.example.com/#location

ただし、このリンクでの議論は、URL のフラグメントは JavaScript を介してのみ到達可能であることを示しています。

しかし、フラグメントが URL で複製され、PHP によって解析され、mod の書き換えによって削除されるリンクを作成することは可能でしょうか? そう....

元の URL:

http://www.example.com/location/#location

PHP は、URL の単純な「場所」のおかげで場所変数を取得します

次に、Apache はリンクを次のように書き換えます。

http://www.example.com/#location

この問題を解決するエレガントな方法があるかどうか知りたいです。

4

5 に答える 5

9

これを読むには Javascript を使用する必要があります。いくつかの異なるオプションがあります。ページの読み込み時に、XmlHTTPRequest (AJAX 要求) を使用して、追加の URL パラメーターが何であるかをサーバーに伝えることができます。別の方法として、追加のパラメーターがあるかどうかを確認して (これも Javascript を介して)、見つかった場合は、これらのパラメーターが URL 自体にエンコードされている別の URL にポストバックすることもできます。

于 2009-07-21T22:16:37.590 に答える
5

Mod_Rewrite フォーラムのこのスレッドによると、フラグメントがサーバーに送信されることはありません。したがって、AJAX を使用して後でページを変更しない限り、これは不可能かもしれません。

もう 1 つのアイデアは、Javascript でハッシュを $_GET パラメータに変換し、ページを更新することです。

于 2009-07-21T22:14:49.357 に答える
0

AJAX 経由でハッシュ フラグメントを PHP スクリプトに送信し、すぐに更新 (ページのリロード) を実行できます。

于 2009-07-21T22:14:22.760 に答える
0

AJAX経由で値をサーバーに送信したら。フラグメント値は SESSION で設定できます。ページを更新すると、セッションに設定されたフラグメントを取得して処理し、対応するコンテンツを表示できます。PHP_SELF / QUERY_STRING などを介してフラグメント値を取得できないためです。これは、Gmail などの Web ページの速度を上げるために必要です。

于 2010-08-08T13:00:46.553 に答える
-2

これは、 PHP の parse_url 関数から返される「フラグメント」値に含まれています。

PHPマニュアルから:

<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?>

戻ります:

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path
于 2011-10-26T05:43:03.283 に答える