За последние 24 часа нас посетили 46633 программиста и 14021 робот. Сейчас ищут 1975 программистов ...

curl xml php post запросом

Тема в разделе "PHP для новичков", создана пользователем genadich, 27 июн 2017.

  1. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    Доброго времени суток, уважаемые знатоки помогите пожалуйста, в php я очень плохо разбираюсь точнее только начинаю изучать. Не могу получить данные из xml post запросом, часть данных выводится а часть нет. Вот скрипт,
    PHP:
    1. $ch = curl_init();
    2. include("../config/config.php");
    3. curl_setopt ($ch, CURLOPT_POST, 1);
    4. curl_setopt ($ch, CURLOPT_POSTFIELDS, 'op=listevents&seq=45');
    5. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    6. curl_setopt ($ch, CURLOPT_HEADER, 0);
    7. $xml = curl_exec($ch);
    8. echo $xml;
    От сервера получаю ответ
    Код (Text):
    1.  
    2. <?xml version="1.0" encoding="UTF-8" ?>
    3. <response seq="45">
    4. <data><eventlist>
    5. <event type="dj">
    6. <dj archive="1">dj</dj>
    7. <active>1</active>
    8. <id>1</id>
    9. <calendar starttime="00:00:00"/>
    10. </event>
    11. <event type="playlist">
    12. <playlist loopatend="0" shuffle="1" priority="3" >jingles</playlist>
    13. <active>0</active>
    14. <id>2</id>
    15. <calendar starttime="13:00:00" duration="00:00:20" timeoffset="00:20:00" repeat="128"/>
    16. </event>
    17. <event type="playlist">
    18. <playlist loopatend="0" shuffle="1" priority="3" >jingles</playlist>
    19. <active>0</active>
    20. <id>3</id>
    21. <calendar starttime="13:00:00" duration="00:00:20" timeoffset="00:40:00" repeat="128"/>
    22. </event>
    23. <event type="playlist">
    24. <playlist loopatend="0" shuffle="inherit" priority="1" >ivanoff</playlist>
    25. <active>0</active>
    26. <id>4</id>
    27. <calendar starttime="21:00:00" duration="01:00:00" timeoffset="00:00:00" repeat="6"/>
    28. </event>
    29. <event type="playlist">
    30. <playlist loopatend="0" shuffle="1" priority="2" >popular</playlist>
    31. <active>0</active>
    32. <id>5</id>
    33. <calendar starttime="14:00:00" duration="00:04:00" timeoffset="01:00:00" repeat="128"/>
    34. </event>
    35. </eventlist></data>
    36. </response>
    У меня выводятся данные которые находятся в
    Код (Text):
    1.  <id>вот эти данные выводятся</id>
    Код (Text):
    1. <dj archive="1">dj</dj>
    2. <active>1</active>
    3. <id>1</id>
    а данные которые находятся здесь
    Код (Text):
    1. <calendar starttime="14:00:00" duration="00:04:00" timeoffset="01:00:00" repeat="128"/>
    Код (Text):
    1. <calendar starttime="Не выводятся" duration="Не выводятся"/>
    не выводятся. Помогите пожалуйста вывести эти данные.
     
  2. gruth

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

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    а что в конфиге?
     
  3. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    В конфиге подключение api к серверу в формете http://login:password@ip:port/api
    так указано в wiki к программе sc_trans
    PHP:
    1. <?php
    2. $ch = curl_init();
    3. curl_setopt($ch, CURLOPT_URL, 'http://login:password@IP:PORT/api');
    4. ?>
    соответственно все данные указаны верно.
     
  4. gruth

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

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    calendar - разве в этом тэге есть что то?!
     
  5. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    Код (Text):
    1. <calendar starttime="14:00:00" duration="00:04:00" timeoffset="01:00:00" repeat="128"/>
    starttime="Время запуска события" duration="Продолжительность события" timeoffset="Сдвиг события" repeat="Дни недели"
    Это читает программа и выставляет события заданные в выше указанных параметрах.
    --- Добавлено ---
    Если нужно могу привести код как вводятся данные.
     
  6. gruth

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

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    Вот ты пишешь что данные которые находятся в ид, выводятся на экран. Но ведь календарь, он пуст. У него есть параметры какие то но сам он пустой. Поэтому и стоит / в конце. Интересно как выводятся определенные данные, допустим ид
     
  7. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    А здесь есть личка? Я скину ссылку где можно наглядно посмотреть что выводится и не выводится.
    --- Добавлено ---
     

    Вложения:

  8. gruth

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

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    а чем выводишь? какой класс?
     
  9. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    что бы было понятней немного исправлю код
    PHP:
    1. $ch = curl_init();
    2. curl_setopt($ch, CURLOPT_URL, "http://login:password@192.168.0.1:7777/api");
    3. curl_setopt ($ch, CURLOPT_POST, 1);
    4. curl_setopt ($ch, CURLOPT_POSTFIELDS, 'op=listevents&seq=45');
    5. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    6. curl_setopt ($ch, CURLOPT_HEADER, 0);
    7. $xml = curl_exec($ch);
    8. echo $xml;
    При таком коде отправляется запрос на сервер где установлена программа sc_trans и ожидает api запрос по адресу http://192.168.0.1:7777/api после получения методом post запроса "listevents" он отдаёт ответ в формате
    Код (Text):
    1. <eventlist>
    2.      <event type="playlist|dj|relay">
    3.        <active/>
    4.        <id/>
    5.        <dj/>
    6.        <playlist loopatend="1|0" shuffle="1|0" priority="#">
    7.          nameofplaylist
    8.        </playlist>
    9.        <relay url=""/>
    10.        <calendar/>
    11.      </event>
    12.      <event ... />
    13.    </eventlist>
    echo $xml; выводит в браузере то что я скидывал в первой картинке при просмотре в браузере исходного кода я вижу что он мне отдаёт всё как положено и выглядит как на второй картинке.
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      11 КБ
      Просмотров:
      3
    • 2.jpg
      2.jpg
      Размер файла:
      95 КБ
      Просмотров:
      3
  10. gruth

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

    С нами с:
    13 май 2017
    Сообщения:
    224
    Симпатии:
    18
    И ты хочешь что бы выводился календарь?
    Это равносильно тому, что бы в html разметке на экран оторбажались, скажем, атрибуты картинок (src="путь" width="10" height="10").
    Так не получится сделать.
    Если хочешь получить с календаря данные, нужно класс для работы с xml юзать.
     
  11. genadich

    genadich Новичок

    С нами с:
    27 июн 2017
    Сообщения:
    7
    Симпатии:
    0
    Спасибо так стало ясней)))) Буду читать)))