Как передать параметры с хешем в PHP - PullRequest
0 голосов
/ 06 августа 2010

Недавно, когда я увидел страницу результатов Google, запрос и другие параметры были переданы с # (хэш) вместо обычного "?"

Также в фейсбуке я видел то же самое. Это было довольно интересно, и после простого поиска по google я нашел результаты, относящиеся к Perl и Ruby, но не дал результатов по PHP

Можно ли передавать параметры с # в PHP вместо "?" или это возможно только с Perl / Ruby. Это будет полезно, и поисковые системы не будут анализировать параметры в URL.

Любые идеи будут полезны для меня.

Ответы [ 4 ]

8 голосов
/ 06 августа 2010

Традиционно # велел браузеру автоматически прокручивать до определенной точки на странице, которая часто использовалась (и остается) для реализации ссылок с одной части страницы (например, оглавления) на другую.(например, заголовок раздела).

Однако это также приводит к тому, что URL-адрес, содержащий #, записывается в историю, даже если он идентичен предыдущему URL-адресу, за исключением #.и что за этим следует.(Другими словами, пользователь все еще находится на той же странице.) Это означает, что кнопку «Назад» можно использовать для возврата в состояние, в котором вы были ранее, даже если это изменение состояния не соответствует странице.load.

Современные AJAX-приложения поэтому часто используют его для обозначения того, что произошло что-то, от чего пользователь может захотеть «вернуться».

1 голос
/ 06 августа 2010

Нет, это невозможно.
То, что вы видели, это просто украшение, отражающее вызов AJAX в адресной строке.

Неважно, какой язык вы выберете - все они находятся на стороне сервера и общаются с браузером по протоколу HTTP. И не допускается привязка в HTTP-запросах. Это полностью клиентская вещь

0 голосов
/ 06 августа 2010

там, вероятно, переписывается какой-то сервер или около того. Пример с сервером Apache, вы можете обрабатывать некоторые URI, как

http://www.mysite.com#something

и переписать его как

http://www.mysite.com/perl/script.pl?data=something

и обработайте его как простой запрос GET к вашему script.pl

Это вся обработка на стороне сервера, невидимая для клиента

0 голосов
/ 06 августа 2010

Вы запутались в результатах поиска, потому что хэш термина перегружен , как и концепция передачи параметров.

Вы видите ссылки на концепцию передачи значений в хэше, потому что ассоциативный массив называется хешем в некоторых языках (что сокращенно для хеш-таблицы).

Символ # также озадаченно назван. Это называется "хэш", "фунт", "число" и "октофорп". Так как я вырос в США, я называю это «знак фунта» в моей голове, что, вероятно, раздражает пользователей большего количества британского английского языка и не менее чревато путаницей (рассмотрим «& pound;»).

Передача аргументов функции в хеш в Perl - это хороший способ получить именованные аргументы для подпрограммы. PHP имеет только позиционные аргументы, но использование Array прекрасно работает там.

Многие веб-библиотеки используют структуру типа хэш / ассоциативный массив для значений формы. Ключи обычно являются идентификатором поля, а значения - значениями поля.

В URI # обозначает начало спецификатора фрагмента. Он идентифицирует часть страницы, на которую указывает URI. Обычно он не используется для передачи информации запроса от клиента обратно на сервер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...