@inkyrein
Начинаю постигать WEB-программирование

Как спарсить url?

Привет всем!
На интуитивном-с-малоопытным подходом я хочу сделать это:
есть урлы типа:
www.site.ru/shop/dushevye-kabiny/?producer_id=1177
из нее хочу получить цифру последнюю, которая для каждой категории своя, т.е. динамическая, для того что бы потом сравнивать ее с ID из базы и отдавать контент на страницу соответствующую ID
$urls = $_SERVER['REQUEST_URI'];
if (preg_match('#\?producer_id=([0-9])#is',$urls)){
$brands = preg_match_all('([0-9])',$urls,$brands2);
	if (isset ($brands2)){
		echo "<!--". implode("", $brands2) ."-->";
	}
}


скажите пожалуйста , что я неправильно делаю? Я только начинаю изучать PHP и пока немногое знаю...
  • Вопрос задан
  • 2654 просмотра
Решения вопроса 1
HighQuality
@HighQuality
☁ Ниндзя девелопер
$url = 'www.site.ru/shop/dushevye-kabiny/?producer_id=1177';

if( preg_match('/producer_id=(\d+)$/', $url, $matches) ) {
	echo $matches[1]; // 1177
}


Но кажется не стоит использовать регулярки... когда можно просто $_GET
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
echo $_GET['producer_id'];
это вам нужно?
Ответ написан
@inkyrein Автор вопроса
Начинаю постигать WEB-программирование
echo "<!--". implode("", $brands2) ."-->"; это я просто вывести хотел, посмотреть что получается.
Ответ написан
Rema1ns
@Rema1ns
и так сойдет
Для разбора url есть функция parse_url(). Она делит url на составные части и пишет их в ассоциативный массив. После выполнения:

$result=parse_url('localhost/?a=1&b=2&c=3');
$result['query'] будет содержать a=1&b=2&c=3.

Для разбора url-параметров есть функция parse_str(). После выполнения:

parse_str('a=1&b=2&c=3',$params);
В $params будет ассоциативный массив с параметрами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы