Не удается получить второй параметр в url php

#php #url

Вопрос:

Я пытаюсь получить параметры c и t следующий URL-адрес:

 http://www.sitename.com/index.php?c=hJjB0wf/f4o&t=4m52Jkm81j8  

делаю $_GET['c'] и $_GET['t'] , но когда я повторяю две переменные, происходит что-то вроде этого:

 c=hJjB0wf/f4o&t=4m52Jkm81j8 t is undefined  

в чем проблема?

Комментарии:

1. Параметры URL-адреса разделены символом a amp; , но ваш URL-адрес закодирован, & поэтому попробуйте сначала запустить строку вашего URL-адреса urldecode()

2. Не код URL-адреса, а исправьте любое место, в котором генерируется этот недопустимый URL-адрес. Устраните первопричину, а не симптом

Ответ №1:

Это потому, что в вашем URL-адресе нет t параметров. В URL &t -адресе указаны URL-адреса amp;t http://www.sitename.com/index.php?c=hJjB0wf/f4o & t=4m52Jkm81j8 .

Все, что вы можете сделать, это что-то вроде

 $url = "http://www.sitename.com/index.php?c=hJjB0wf/f4o&t=4m52Jkm81j8";  $fixed = urldecode($url); // fix & -gt; amp;  $urlParts = parse_url($fixed);  $params = [];  parse_str($urlParts['query'], $params);  print_R($params); Array (  [c] =gt; hJjB0wf/f4o  [t] =gt; 4m52Jkm81j8 )    

Ответ №2:

Вы не получаете значение, потому что URL-адрес неверен. Прежде чем должно произойти amp; подобное, вы получите значение t. Обновите свой URL-адрес

 http://www.sitename.com/index.php?c=hJjB0wf/f4oamp;t=4m52Jkm81j8