У меня есть переменная, которая состоит из
// The First Page (hello.php) $a = 'goto.php?a_56=63525588000&url=http://www.example.com/site/DISC+cUSTOMc+Studio+24+- +Windows/1142766.p? id=1218224802931&usi=1142766&cmp=RMX& ky=2crslw0k9ZOM0ciu2rqi4NsYY7eQnnEyP'; // The Second Page (goto.php) $r = $_GET['url']; echo $r; //http://www.example.com/site/Disc cCustomc Studio 8 - Windows/1142766.p?id=1218224802931
Почему она отключается?
Это не проблема длины, это потому, что вы хотите, чтобы один из ваших параметров GET (url в данном случае) содержал символ &. Вам необходимо urlencode этот символ, иначе он будет интерпретирован как другой параметр GET в запросе, а не как часть параметра url.
url
&
urlencode
Когда urlencoding, & станет %26, и ваша строка запроса станет такой,
%26
goto.php?a_56=63525588000&url=http://www.example.com/site/DISC+cUSTOMc+Studio+24+-+Windows/1142766.p?id=1218224802931%26usi=1142766%26cmp=RMX%26ky=2crslw0k9ZOM0ciu2rqi4NsYY7eQnnEyP
Поскольку & указывает конец пары ключ / значение в строке запроса.
Используйте urlencode для подготовки данных для включения в строку запроса.
Амперсанд используется для разделения параметров во внешней строке запроса.Вам нужно будет URL-кодировать его, если вы хотите использовать его в параметре GET.
Он обрезается, потому что он обрабатывает & в вашем параметре url как фактический разделитель параметров GET, а это не так.
Вам необходимо использовать urlencode () для кодированияваш URL.