1

クエリ文字列からvar1とvar2を取り出して、HTMLに書き込みます(エコー)。

単純に見えますが、私のURLは次のように形成する必要があります。

http://example.com/filename.html#var1=FOO&var2=BAR

ファイル名の後のハッシュに注意してください-URLには通常の?クエリ文字列区切り文字が含まれていません。

簡単な関数でこれを達成するにはどうすればよいですか?...基本的な質問のようですが、?の前に#が必要なURL構文で機能させることができません。

前もって感謝します!

UPDATEUPDATEUDATE- @Musaの回答のコード例に基づいています。

ウィンドウの場所からPHP_URL_FRAGMENTSを取得し、それらをHTMLに書き込みたいのですが、これを試みています。

// get the URL from window location:
$pageURL = $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://';
$pageURL .= $_SERVER['SERVER_PORT'] != '80' ? $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"] : $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
return $pageURL;

// parse URL including #fragments:
parse_str (parse_url ($pageURL, PHP_URL_FRAGMENT ), $args);

// write var values into the HTML:
    echo $args['var1'], ' ', $args['var2'];

私は$pageURL適切に作成していないか、ラインで何か間違ったことをしていparse_strます。

次のようなURL構文を引き続き使用します。http://example.com/filename.html#var1=FOO&var2=BAR

ウィザードからの解決策はありますか?ありがとうございました。

4

2 に答える 2

2
parse_str (parse_url ("http://example.com/filename.html#var1=FOO&var2=BAR", PHP_URL_FRAGMENT ), $args);
echo $args['var1'], $args['var2'];

http://php.net/manual/en/function.parse-url.php

http://php.net/manual/en/function.parse-str.php

デモ

于 2012-08-27T00:55:43.607 に答える
1

Javascriptを介して渡すか、非表示のフォーム要素としてサーバーに送信できます。

シャープ記号の後の部分(ハッシュ部分)は、通常、ブラウザによってサーバーに渡されません。

サーバーログを確認できます。受信したgetリクエストは「http://example.com/filename.html」になりますが、「http://example.com/filename.html#?var1=FOO&var2=BAR」にはなりません。

于 2012-08-27T01:03:49.283 に答える