Проблема заключается в том, что параметры, отправленное с помощью ГЭТ, разделяются с помощью &. Так что если у вас есть URL, как
http:/example.com?param_1=value_1¶m_2=value_2
Вы будете иметь массив $ _GET как
array(
param_1 => 'value_1',
param_2 => 'value_2'
);
Теперь, если вы пришлете и URL, как:
http://example.com?param_1=value_1 & value_2
Вы будете иметь $ Массив _GET, такой как
Просто потому, что это способ отправки параметров GET. На стороне приема, вы не можете многое сделать, проблема лежит на другом конце. параметров GET, которые неоспоримым посыл действительно должны быть закодированы, в PHP, что делается с помощью
echo 'http://example.com?param_1=' . urlencode('value_1 & value_2');
Javascript использует encodeURIComponent(), чтобы решить эту проблему. PHP вызывает urldecode() автоматически при каждом параметре get, когда он создает ваш глобальный $ _GET.
Вы не должны его декодировать, это должно быть сделано автоматически. Можете ли вы сделать 'var_dump'' $ _GET'? – Flosculus
* Как вы читаете querystrig? Каков точный ввод и точный код, который вы используете? Видя, что символ '&' является символом-разделителем, и опущен, поскольку он служит в качестве разделителя, если вы хотите «прочитать» знак '&', он должен быть закодирован как «&», если я не ошибаюсь. –
Flosculus, я понимаю, что PHP будет читать это как отдельную переменную GET. – HelpNeeder