Два знака вопроса в url

Тема в разделе "Как сделать...", создана пользователем ivan_st, 20 фев 2012.

  1. ivan_st

    ivan_st Постоялец

    Регистр.:
    11 май 2008
    Сообщения:
    52
    Симпатии:
    8
    Есть API, URL которого в виде http://www.api.ru/.../ПОДСТАНОВКА?param=123&id=...
    Знак вопроса составная часть API.
    ПОДСТАНОВКА - это обрабатываемые Урлы.
    К сожалению, попадаются подставляемые URL так же, со знаком вопроса - напр.
    site.ru/.../abc?sort=1
    И API это не берет. URLEncode не помогает.
    Что-то можно сделать?
     
  2. serapol

    serapol Создатель

    Регистр.:
    23 июл 2009
    Сообщения:
    43
    Симпатии:
    10
    Можно закодировать их через base64_encode() и в скрипте обработки соответственно расшифровать через base64_decode().
     
  3. ivan_st

    ivan_st Постоялец

    Регистр.:
    11 май 2008
    Сообщения:
    52
    Симпатии:
    8
    так, нет. ПОДСТАНОВКА - моя, я ж не буду просить у поставщика API - конвертните.
    один знак вопроса - их, а один мой.
     
  4. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
     
  5. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Если кодировка на сайте вин-1251, то перед URLEncode попробуйте конвертнуть адрес в УТФ-8 и только потом урленкодить.
     
  6. diden05

    diden05 Создатель

    Регистр.:
    20 окт 2009
    Сообщения:
    13
    Симпатии:
    4
    ТС, конкретный пример url где это нужно приведите.
     
  7. cmd

    cmd Создатель

    Регистр.:
    24 авг 2011
    Сообщения:
    25
    Симпатии:
    2
    На самом деле интересный вопрос. Сам недавно столкнулся и кроме base64_encode ничего не придумал.

    Вот я не понял. Предположим есть URL:

    http://example.com/go.php?url=http://test.com/index.php?cat=100&page3;100

    Если взять $_GET, то там будет только:

    Код:
    $_GET = array(
    'url' => 'http://test.com/index.php?cat=100'
    );
    Т.е. "хвост" после второго знака вопроса отвалиться. И как тут можно что-то перекодировать?
     
  8. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
  9. cmd

    cmd Создатель

    Регистр.:
    24 авг 2011
    Сообщения:
    25
    Симпатии:
    2
    Ну, так это надо чтобы адресную строку изначально передавали правильно. С таким же успехом можно кодировать в base64. А если в адресной строке уже присутствует два знака вопроса (как данность), то решения нет?
     
  10. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    cmd, Вы читали это?
    Передаю таким образом урлы с двумя ? через АПИ Вконтакте, фейсбук, мейл.ру, твиттер, 1классники.