Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: curl и передача xml-файла
 
 автор: vadimka   (16.05.2011 в 16:50)   письмо автору
 
 

Здравствуйте!
Долго пытаюсь разобраться с курлами...
т.е. схема такова: мне приходит, как я понял через курлы xml-файл. получив я отправляю ответ (опять через curl, в виде xml-файла)
не могли бы вы объяснить схему работы.
мне приходят данные $HTTP_RAW_POST_DATA - это через форму?
я принял распарсил (тут - более менее понятно), но как сформировать ответ: нужно вставлять в форму, которая автоматически делает submit или какой-то редирект?
Заранее благодарю!

  Ответить  
 
 автор: cheops   (17.05.2011 в 10:01)   письмо автору
 
   для: vadimka   (16.05.2011 в 16:50)
 

>я принял распарсил (тут - более менее понятно), но как сформировать ответ: нужно вставлять в
>форму, которая автоматически делает submit или какой-то редирект?
Как я понял у вас уже есть решение отправляющее ответ через CURL, т.е. минуя формы и браузеры. Серверу все-равно откуда данные идут, от скрипта или от браузерной формы, однако вам вероятнее будет удобнее сформировать ответ через скрипт?

  Ответить  
 
 автор: vadimka   (17.05.2011 в 10:54)   письмо автору
 
   для: cheops   (17.05.2011 в 10:01)
 

Все запутано:)
мне приходит xml как $HTTP_RAW_POST_DATA я должен распарсить и отпраить в виде xml через CURL...
во время тестирования при прогонке к самому себе данные передавались только при использовании формы.
т.е как заставить передать данные без формы
вот передающий скрипт:

$post="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <message xmlns=\"урл\"   
 rid=\"1288960181\">
    <sin>номер абонента</sin>
    <sn>короткий номер</sn>
    <service>content-request</service>
    <status date=\"2010-11-05 14:44:10+02\"/>
    <body content-type=\"text/plain\">Текст сообщения</body>
    </message>"
;

$url "урл, куда отправляется/in.php ";

$ch curl_init();
curl_setopt($chCURLOPT_URL,$url);
curl_setopt($chCURLOPT_FAILONERROR1);
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
curl_setopt($chCURLOPT_TIMEOUT6);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$post);
curl_setopt($chCURLOPT_HTTPHEADER$headers);

$result curl_exec($ch);
curl_close($ch);

  Ответить  
 
 автор: cheops   (17.05.2011 в 11:05)   письмо автору
 
   для: vadimka   (17.05.2011 в 10:54)
 

Хм... помоему все нормально (так многие сервисы работают), вы получаете даные, парсите, формируете ответ в виде XML-файла и шлете его методом POST на сервер. А сервер уже сам там с ним разберется. У вас даже скрипт готов, нужно только подставить свои данные.

  Ответить  
 
 автор: vadimka   (17.05.2011 в 12:49)   письмо автору
 
   для: cheops   (17.05.2011 в 11:05)
 

вот мне непонятно как его активировать... т.е. если вызывается скрипт, данные передаются?

  Ответить  
 
 автор: cheops   (17.05.2011 в 15:17)   письмо автору
 
   для: vadimka   (17.05.2011 в 12:49)
 

Ну в самом простом случае вызывать в окне браузера, ваш скрипт обратиться к серверу, получить XML-файл, обработает его и тут же, отправит ответ обратно, открыв новое соединение с сервером.

  Ответить  
 
 автор: vadimka   (17.05.2011 в 15:42)   письмо автору
 
   для: cheops   (17.05.2011 в 15:17)
 

не понял:) к примеру - с некоего сервера ко мне на скрипт падает xml файл (как $HTTP_RAW_POST_DATA) в ответ скрпт генерит код и взяв номер из пришедшей информации отправляет назад. Вот запуск скрипта мне не понятен... он автоматически запускается при обращение с другого сервера(curl)? если скрипт запустился и начинается (соединение curl )? все это запускается в браузере?

  Ответить  
 
 автор: vadimka   (17.05.2011 в 18:14)   письмо автору
 
   для: vadimka   (17.05.2011 в 15:42)
 

мне тут подсказывают, что курл имитирует открытие страницы в браузере (без открытия оной)

  Ответить  
 
 автор: cheops   (17.05.2011 в 20:58)   письмо автору
 
   для: vadimka   (17.05.2011 в 18:14)
 

Вернее даже не CURL имитирует открытие страницы в браузере, а браузер и CURL используют один и тот же механизм для доступа к серверу, который страницу отдает (сокеты).

  Ответить  
 
 автор: vadimka   (18.05.2011 в 13:18)   письмо автору
 
   для: cheops   (17.05.2011 в 20:58)
 

т.е. запущенная страница с курлами передает данные на другую страницу (допустим in.php), которая запускается без открытия в браузере, выполняет свою работу, и снова через курлы передает информацию на другой сервер out.php

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования