как получить URL-адрес, содержащий «#» в нем с помощью php?

Возможный дубликат:
получить хэш в URL с php?

у меня есть страница, которая содержит закладку в своем URL-адресе, например

http://www.abc.com/page_url#bookmark

я использую $_SERVER['HTTP_HOST'] и $_SERVER["REQUEST_URI"] для получения URL-адреса, но его URL-адрес для загрузки доступен только до http://www.abc.com/page_url т. е. в нем нет моей ссылки с закладками.

Как я могу получить свой полный URL-адрес (с содержимым «#») в php????

Редактировать:

посмотрите, что я хочу сделать, я хочу добавить '/' в свой URL-адрес, т.е. если URL-адрес http://www.abc.com/page_url#bookmark, то я хочу перенаправить его на http://www.abc.com/page_url#bookmark/ .Когда я делаю это с $_SERVER["REQUEST_URI"], это приводит к http://www.abc.com/page_url/#bookmark, что неверно. Теперь плз скажите, как я могу это сделать???


person developer    schedule 13.07.2010    source источник
comment
Что касается вашего редактирования: то, что вы хотите, скорее всего, не имеет смысла. Пожалуйста, объясните, почему вы хотите перенаправить http://www.abc.com/page_url#bookmark на http://www.abc.com/page_url#bookmark/... В любом случае, это можно сделать только с помощью Javascript; см. мой ответ.   -  person Artefacto    schedule 13.07.2010


Ответы (2)


Большинство браузеров не отправляют #fragment при запросе URL-адреса, а обрабатывают его внутри... поэтому PHP не имеет доступа к этой информации.

person Mark Baker    schedule 13.07.2010
comment
неужели нет другого способа забрать??? - person developer; 13.07.2010
comment
@developer, нет, поскольку он не отправляется на сервер. - person Darin Dimitrov; 13.07.2010
comment
PHP может работать только с запросом, отправленным на сервер браузером. Вы можете передать цель несколько иначе: abc.com/page_url?fragment=bookmark#bookmark и получить к нему доступ, используя $_GET['fragment'] - person Mark Baker; 13.07.2010
comment
Он будет доступен на стороне клиента в JavaScript, но не во время рендеринга страницы PHP. - person Pekka; 13.07.2010

Браузер не отправляет веб-серверу эту информацию (называемую «фрагментом») при запросе веб-страницы. На самом деле может даже вообще не делать запрос (если перейти по ссылке на ту же страницу, но на другой фрагмент).

Единственный способ сделать это с помощью Javascript. Вы можете получить фрагмент с помощью self.document.location.hash. Затем вы можете сделать отдельный запрос (например, ajax), чтобы отправить серверу эту информацию.

Это было бы полезно, например. для хранения статистики о том, в какие разделы попадали пользователи, перейдя по ссылке, но вы можете изменить способ отображения страницы на стороне сервера на основе фрагмента (конечно, с помощью javascript вы можете перенаправить пользователя на другую страницу или на ту же страница, передающая фрагмент в строке запроса, чтобы затем его можно было отобразить по-другому).

person Artefacto    schedule 13.07.2010