За последние 24 часа нас посетили 16693 программиста и 1693 робота. Сейчас ищет 781 программист ...

загрузка xml с удаленного сервера по запросу на сайт

Тема в разделе "Прочие вопросы по PHP", создана пользователем savenko, 4 апр 2011.

  1. savenko

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

    С нами с:
    19 янв 2011
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте, уважаемые коллеги!
    Есть вопрос:
    Клиент отправит мне запрос в формате domen.ru?request=true тем самым инициализирует загрузку файла в формате xml в виде:
    <info>
    <game_name>test</game_name>
    <price>50</price>
    </info>

    Как принимать такой файл? И выдать в случае успешного получения файла "true",
    или при неудаче - "false"?
    Если бы я читал бы инфу из файла то вопросов не было бы а тут не понимаю. Плиз хелп...
     
  2. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    как он тебе отсылает данные - просто в теле запроса XML, или в пост данные, или именно файл заливает?
     
  3. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Ensiferum
    А чем эти три случая отличаются? Точнее как второй отличается от остальных?
     
  4. savenko

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

    С нами с:
    19 янв 2011
    Сообщения:
    15
    Симпатии:
    0
    Я не знаю... у меня есть такая инфа и как с ней работать я не пойму.
    Я знаю что должен воспользоваться функцией simplexml_load_string($xmldata) а вот как получить эти данные в переменную $xmldata я не знаю. Были бы в файле использовал бы file_get_contents были вы в запросе через $_GET. А тут просто так они как-то так присылаются. Что подскажите?
     
  5. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    попробуй:
    Код (Text):
    1. $xml=file_get_contents('php://input');
     
  6. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    Volt(220)
    разница в том, что второй случай - массив $_POST, в третьем - массив $_FILES, а в первом данные идут как бе постом, но не переменной назначаются, а просто идут... хз как человеческим языком это объяснить
     
  7. savenko

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

    С нами с:
    19 янв 2011
    Сообщения:
    15
    Симпатии:
    0
    Во вроде бы то что нужно спасибо))) Только скажите пожалуйста как мне проверять свой скрипт если пока удаленный сервер молчит , пока записать демо данные к себе на сервер в файл а потом переделать на php://input для получения с удаленного сервера?

    Еще вопрос. После обработки должен выдать файл обратно клиенту это делать через header?
    Написано что еще при удачной загрузке файла я должен получить запрос вида domen.ru/?download=true.
    А что делать пока не получил запрос такого вида? Продолжать ему отсылать этот файл? Как это делается?
     
  8. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Создать второй скрипт, который будет посылать данные первому, например:
    PHP:
    1. <?php
    2. $opts = array(
    3.     'http'=>array(
    4.     'method'=>"POST",
    5.     'user_agent'=>'MyAgent',
    6.     'header'=>'Content-type: text/xml',
    7.     'content'=>$data));
    8. $context = stream_context_create($opts);
    9. $xml=file_get_contents($link,false,$context);
    где $data - посылаемые данные, $link - адрес первого скрипта

    Можно просто вывести нужную информацию. Таким образом второй скрипт отправит POST запрос и в ответ получит нужные данные.

    Это уже вопрос к клиенту.
     
  9. savenko

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

    С нами с:
    19 янв 2011
    Сообщения:
    15
    Симпатии:
    0
    Большое спасибо тебе. Делаешь действительно добрые дела))) Спасибо!