JSON модуль непонятные символы
Добрый день!
Установили JSON модуль поиска тура http://json.tez-tour.com/ С модуля тез тур принимаю некий параметр, который передает ссылку на тур. Принимаю GET. Cсылку получаю, только в ней непонятные символы(подмена), я выделил жирным. Подскажите пожалуйста в чем дело. В http://online.tez-tour.com/armmanage......ru&ftt=3635<t=3635&sk=1&rar=1285&rdr=1285&cResId=10471545869&pr iceOfferId=11832169&cFlyIds=10086062 |
Получаю так:
$_GET['booklink'] ; print $_GET['booklink']; |
echo rawurldecode($_GET['booklink'])
|
Все по старому(
|
Ссылка такой вид должна иметь:
http://online.tez-tour.com/armmanage...&captcha=false |
http://online.tez-tour.com/armmanager/workplace/section/new-order?depCity=345&arrivalCity=345&hotStType=2&locale=ru&ftt=3635<t=3635&sk=1&rar=1285&rdr=1285&cResId=10471549769&priceOfferId=11832175&cFlyIds=10086062&captcha=false |
Так не получится, что там по старому, что по новому....
Нужно видеть как есть. Если есть что-то битое, что может быть в итоге кодировано, то rawurldecode позволит увидеть что. То есть, покажите параметр один в один, без ссылки, убрав протокол, иначе повтор обычный виден: ....ru&ftt=3635<t=3635 |
сейчас
online.tez-tour.com/armmanager/workplace/section/new-order?depCity=345&arrivalCity=345&hotStType=2&loca le=ru&ftt=3635<t=3635&sk=1&rar=1285&rdr=1285&cResI d=10471549772&priceOfferId=11832175&cFlyIds=100861 43 |
Ясно. Еще раз тогда:
В URL символы такие как ? и &, это специальные, и нельзя в GET параметр подставить строку содержащую url с параметрами как есть, ее кодируют перед этим, и такого параметра как: online.tez-tour.com/armmanager/workplace/section/new-order?depCity=345&arrivalCity в ней будет, а будет такое: http%3A%2F%2Fonline.tez-tour.com%2Farmmanager%2Fworkplace%2Fsection%2Fnew-order%3FdepCity%3D345%26arrivalCity... Вот это < видим "в лоб" потому, что <, это html мнемоника этой угловой скобки. А далее видно вторую t и т.д... |
laimas,
А как кодировать? |
laimas,
Спасибо большое, разобрался |
Кодирует сторона передающая такой параметр, а сервер ее принявший декодирует.
Вы поступаете в лоб, выводя на экран вот так print $_GET['booklink'], поэтому и видите то, что и должны увидеть - html мнемонику, которая получается из-за сочетания разделителя параметра и следующих за ним символов. Ну обозвали бы параметр не "ltt", а "copy" и получилось бы сочетание ©, и видели бы вы не <, а ©. Вы ее получаете зачем - посмотреть на нее или использовать? Если посмотреть, то: //если то, что как пришло, то кодируем уже у себя echo rawurlencode($_GET['booklink']); //если то, что получил сервер принимающий echo htmlspecialchars($_GET['booklink']); Если использовать то вставлять этот полученный параметр куда надо: <a href="<?=$_GET['booklink']?>">tez-tour.com</a> В чем проблема? |
Слава богу, а то я начал писать ответ, да на кофе отвлекся, потом сигаретой затянуться.... и слишком долго затягивался. :)
|
урл из параметра отгружается в урл без всяких преобразований, а если его надо распарсить, то подаете значение параметра на вход функции parse_str() - http://php.net/manual/ru/function.parse-str.php и юзаете все что в ней навалено.
|
Часовой пояс GMT +3, время: 11:47. |