За последние 24 часа нас посетили 49932 программиста и 1688 роботов. Сейчас ищут 1035 программистов ...

Получение ассоциативного массива с помощью CURL

Тема в разделе "Прочие вопросы по PHP", создана пользователем ваяс, 9 окт 2012.

  1. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Прошу помощи в решении следующего вопроса.
    Мне необходимо получить на страницу ассоциативный массив возможно ли с помощью CURL сделать такое?
    Есть страница где возвращается ассоциативный массив, я получаю его в виде строки можно ли его получить в виде массива как то?
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    покаж пример
     
  3. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Есть метод который возвращает массив
    Код (Text):
    1.  
    2. echo GroupsSelect();
    т.е. браузеру он вернет строку array
    на другом сайте я получу эту строку в $out
    Код (Text):
    1.  
    2. $curl = curl_init();
    3. curl_setopt($curl, CURLOPT_URL, $url);
    4. curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
    5. $out = curl_exec($curl);                       
    6. curl_close($curl);     
    7. /* В переменную $out придет строка Array или можно сюда получить строку вроде этой
    8. Array ( [0] => users [1] => admin [2] => stats [3] => itsm-service [4] => itsm-configitem [5] => itsm-change [6] => itsm-change-builder [7] => itsm-change-manager [8] => faq [9] => faq_admin [10] =>
    9. Это в том случает если на той странице выведем метод GroupsSelect() с помощью print_r()
    10. Но тем не менее это строка */
    И хотелось бы как то сделать нормально, не прибегая к регулярным выражениям и т.д.
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а поменять на той стороне способ вывода ты можешь?
     
  5. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Сейчас у меня вот так сделанно:
    users#admin#stats#itsm-service#itsm-configitem#itsm-change#itsm-change-builder#itsm
    Т.е в методе GroupsSelect() я массив преобразовываю в строку используюя разделитель, после чего полученную строку я разбиваю с помощью explode() в принципе получается то что надо.
    Но, я хочу получить ИМЕННО массив.
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    там
    Код (Text):
    1. echo json_encode(GroupsSelect());
    тут
    Код (Text):
    1. $out = json_decode(curl_exec($curl));
    Добавлено спустя 53 секунды:
    еще есть serialize/unserialize
     
  7. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    Что то json_decode() упорно возвращает null.
    Но если я копирую преобразованную строку и вставляю её прямо в код тогда все отлично
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну ты посмотри что тебе возвращает курл, а потом уже бум думать в чем косяк
     
  9. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    {"1":"users","2":"admin","3":"stats","4":"itsm-service","5":"itsm-configitem","6":"itsm-change","7":"itsm-change-builder"}
    Вот что он возвращает

    Добавлено спустя 5 минут 14 секунд:
    null возвращается если данные не верно сформированы. Кодировка utf 8, сама строка без ошибок т.к. когда я просто её в переменную занесу то все нормально.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    проверь наличие пробелов или других спец. символов до и после строки
     
  11. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты что в нотепаде работаешь?
     
  13. ваяс

    ваяс Активный пользователь

    С нами с:
    8 июн 2012
    Сообщения:
    99
    Симпатии:
    0
    В нетбинсе дебажу

    Добавлено спустя 5 минут 47 секунд:
    вот блин, нельзя так долго не отходить от рабочего места ((((((( Все работает наконец то ) простая не внимательность

    Добавлено спустя 3 минуты 28 секунд:
    Спасибо, что не оставляете в беде товарища )))
    http://www.php.ru/ РУЛИТ )))))))))