Forum Webscript.Ru
Программирование => PHP => Тема начата: DLama от 19 Ноября 2001, 19:24:43
-
Вопрос трудный, для меня конечно и я надеюсь, что найдутся те, кому ответить на него не составляет проблемм.
Стоит следующая задача.
Нужно задавать переменные таким образом, что бы они были зависимы в строки URL.
Поясню.
Предположим пользователь обратился к странице http://roma.ru/sections/tolik/istoria.phtml
Теперь нужно сделать анализ URL и определить переменные соответствующие разделу в котором лежит документ. В данном URL например признаком принятия решения, т.е. выбора того или иного варианта переменных является последовательность "tolik" и соответственно переменые устанавливаются соответствующие разделу tolik. А в URL таком http://roma.ru/sections/maha/skazki.phtml является наличие в URL "maha".
Теперь собственно сам вопрос.
Какой функцией в РНР можно было бы сделать анализ и принять решение о наличии в URL той или оной последовательности знаков.
Всех зарание благодарю за помощь.
-
http://www.php.net/manual/en/function.parse-url.php
-
Для начала
http://www.webscript.ru/stories.php3?story=52
-
Britva
Эх, ещё бы это по русски, а то чёрт ногу сломит.
Спасибо мужики, попытаюсь разобраться.
-
DLama
А почему не так?
http://roma.ru/sections/istoria.phtml?int=tolik
http://roma.ru/sections/istoria.phtml?int=masha
-
То DimovD
Ну например по тому что есть люди которые обрезают адрес ручками и попадают в error 404, т.е. делают так
http://roma.ru/sections/istoria.phtml
или так
http://roma.ru/sections/
а если разделов и подразделов предостаточно, то получается что то геморное :(
Случай http://roma.ru/sections/ конечно не смертельный и решается киданием индекс файла в папки например, а вот первый
http://roma.ru/sections/istoria.phtml однозначно ошибка, но тут конечно можно былобы в сам istoria.phtml кинуть для определённости.
Ещё хуже когда чел орезку делает не верно, с ошибкой типа http://roma.ru/sections/istoria.ph
Не знаю, может дело просто я "классики правильной структуры" сайта не знаю, может подскажите, как например Вы делали.
-
DLama
Если беспокоиться об обрезании адреса ручками, то Твой способ
http://roma.ru/sections/tolik/istoria.phtml как раз менее правильный чем
http://roma.ru/sections/istoria.phtml?int=tolik
Ты объясни- что Ты делаешь, тогда можно будет советовать как это делать :)
-
То DimovD
Всё достаточно просто и достаточно сложно :)
Контент раскидан по разделам типа предположим
skazki
anekdoti
istorii
povesti
Нужно чтобы при запросе типа http://roma.ru/sections/skazki/skazki.phtml
в зависимости от того в каком разделе контент, подгружались соответствующие переменные (для оформления и прочей лабуды) и при этом чтобы при любой обрезке и искажении урл до http://roma.ru/sections/skazki/
посетитель не вываливался за пределы раздела skazki
Т.е. получается что всё должно определятся по урл без QUERY_STRING
Ну и чтобы структура сайта пользователю была понятна и из урла в том числе, т.е. отсутствовали непоняточки в урле после "?"
Вариант описанный в http://www.webscript.ru/stories.php3?story=52 не кактит, так хостер "не очень этому рад".
-
Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)
-
To alexvolkov
"Кхе-кхе... Ну вы знаете, что я бы тут сказал :-)"
Так что бы ты сказал? Что то плохо слышно! Надеюсь интересная мысль.
-
http://ssrtech.com он бы сказал, alexvolkov я правильно понял? :)
-
Хмм...
Лично у меня сделано так:
$url = explode("/", $REQUEST_URI);
Тогда $url[2] и будет skazki, anekdoti, istorii или povesti по ситуации.
> хостер "не очень этому рад".
а это уже нехорошо. Точнее нехороший. Хостер. От переопределения 404-я странички ему ничего плохого не станется, со стругтурой сайта действительно проще.
-
То Foshvad
Спасибо за вариант.
$url = explode("/", $REQUEST_URI);
Тогда $url[2] и будет skazki, anekdoti, istorii или povesti по ситуации.
Т.е. получается что в переменной $url ,удет skazki, anekdoti, istorii povesti и т.д. всё через пробел вместо "/"
Теперь подскажите пожалуйста как присвоить из этого другие перменные.
Например:
Есть запрос http://roma.ru/sections/istoria/subsections/skazki/?id=labuda
Получили в $url
sections istoria subsections skazki id=labuda
Как бы теперь присвоить перменным, например таким:
$urls1; $urls2; $urls3; $urls4; $urls5; $urls6,
значения из перменной $url , что бы получилось так:
$urls1="sections";
$urls2="istoria";
$urls3="subsections";
$urls4="skazki";
$urls5="id=labuda";
$urls6="";
т.е. по порядку следования например урле,
а потом что бы это дело можно было уже использовать по потребностям.
Или может из explode("/", $REQUEST_URI);
сразу присваивать нескольким переменным???
Или может я не понял чего. Может $url[1], $url[2], $url[3]
и т.д. и выдаст мне требуемое?
Буду весь признателен за подробный ответ.
-
А чем вы не подходят переменный массиве? В принципе можно сделать
list($url1,$url2....) = $url
Только зачем?