получить хеш в URL с php?

кто-то здесь в ТАК сказанном меня, что хеш (#) в URL мог быть получен функцией php parse_url? действительно ли это верно?

мой веб-сайт получил много ajax эффектов, и я хочу смочь передать URL с хешем к index.php, таким образом, он мог отобразить информацию на основе значений хэш-функции.

например, если пользователь нажимает и перешел в моем веб-сайте, и он нашел вещь, которую он хочет совместно использовать, затем он мог скопировать адрес и отправить его его другу и когда этот человек входит, он видит то же самое.

я попытался использовать JavaScript для сохранения значений хэш-функции в cookie, но это не работает с Firefox, и его слишком медленный в сафари (HTML покажет сначала, таким образом, нужно будет обновить страницу во второй раз для корректного содержания, которое покажут).

любое другое решение приветствуется

Править: Я очень смущен.. если я использую parse_url, я должен ввести URL сам в php для получения хеша? какой смысл затем... мой вопрос, если, может ли мой приятель ввести URL со значениями # и php, мог бы обработать его? это походит не, действительно ли я прав?

6
задан Josh Lee 27 July 2010 в 10:40
поделиться

4 ответа

parse_url() может получить хэш из url-строки. Обратите внимание на сигнатуру:

mixed parse_url ( string $url [, int $component = -1 ] )

Вы уже должны знать строку. Например, из документации:

<?php

  $url = 'http://username:password@hostname/path?arg=value#anchor';
  print_r(parse_url($url));
  echo parse_url($url, PHP_URL_PATH);

?>

Outputs

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)
/path

Note the entry under key "fragment".

.
6
ответ дан 8 December 2019 в 13:46
поделиться

Хэш в URL даже не получает на сервер. Доступ к нему с серверной стороны невозможен с любого языка программирования

.
11
ответ дан 8 December 2019 в 13:46
поделиться

кто-то здесь, в SO, сказал мне, что хэш (#) в урне может быть найден по php-функции parse_url? Это что? true?

Да:

parse_url('http://stackoverflow.com/questions/1957030/retrieve-the-hash-in-the-url-with-php/1957040#1957040', PHP_URL_FRAGMENT); // 1957040

Но вы не можете определить хэш на стороне сервера, не зная полного URL априори, не будучи уверенным, что HTTP_REFERER содержит этот хэш (не думайте).

.
0
ответ дан 8 December 2019 в 13:46
поделиться

Пример из php manual:

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

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
?> 
0
ответ дан 8 December 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: