#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