Как извлечь var из строки запроса и записать ее (эхо) в HTML?

Я хочу взять var1 и var2 из строки запроса и записать ее (эхо) в HTML.

Кажется простым, но мой URL должен быть сформирован так:

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

Обратите внимание на хеш после имени файла - URL не содержит нормальных ? разделитель строки запроса.

Как мне сделать это с помощью простой функции? ... кажется базовым вопросом, но я не могу заставить его работать с синтаксисом URL, который требует # раньше?

заранее спасибо!

UPDATE UPDATE UDATE - построение на примере кода в ответе @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

Какие-нибудь решения от ваших волшебников? Спасибо.

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

DEMO

Вы можете передать его через Javascript или отправить на сервер как скрытый элемент формы.

Часть после резкого символа (часть хеша) обычно не передается на сервер браузером.

Вы можете проверить журналы вашего сервера - полученные запросы будут "http://example.com/filename.html", но не "http://example.com/filename.html#?var1=FOO&var2=BAR"

Другие вопросы по тегам