Нет никакого «простого» способа заменить всю функциональность параметров $ _GET, но есть некоторые неудобные хаки, по крайней мере, под Apache. Учитывая, что вы не можете использовать параметры $ _GET, я предполагаю, что у вас также нет доступа к mod_rewrite, но кто знает.
Запрос как http://www.example.com/index.php/foo/bar/baz
будет генерировать следующие элементы в $ _SERVER суперглобальное:
[REQUEST_URI] => /index.php/foo/bar/baz
[SCRIPT_NAME] => /index.php
[PATH_INFO] => /foo/bar/baz
В теории, вы можете разобрать $ _SERVER [ 'PATH_INFO'] путем разделения на "/", пробегает по этот массив и разбиение на «=» (предполагая, что вы все еще собираетесь использовать структуру key = value).
Имейте в виде, однако, что побочный эффект шатких структур URL является то, что относительные ссылки в документе будет относительно шатким URL, поэтому изображение как
<img src="images/myimage.jpg">
будет пытаться загрузить http://www.example.com/index.php/foo/bar/images/myimage.jpg
Этого можно избежать, используя абсолютные URL-адреса (http://www.example.com/images/myimage.jpg
) или корневые URL-адреса (/images/myimage.jpg
).
Но в основном вы просите мир о проблемах ... и устранении неполадок.
Посмотрите метод [mod_rewrite] (http://www.cyberdesignz.com/blog/website-design/url-rewriting-top-5-ways-of-php-url-rewriting/). –
Первое, что приходит в голову, это использовать POST вместо GET? Вторая мысль использует $ _SERVER ['REQUEST_URI'] и выполняет некоторые синтаксические разборки объявлений? - edit - или если вы можете использовать mod_rewrite, то что @BradChristie предложил. – favoretti
Используйте пост вместо этого? – vascowhite