Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обмен данными между серверами....
Форумы портала PHP.SU » » Вопросы новичков » Обмен данными между серверами....

Страниц (1): [1]
 

1. dozer009 - 09 Сентября, 2016 - 12:14:32 - перейти к сообщению
Доброе время суток Уважаемые форумчане!

хотелось узнать как можно реализовать схему обмена какими либо данными между двумя серверами!обмен данными в одном запросе, переслать с одного сервера данные на обработку другому и получить ответ! вернее когда пользователь обращается к сайту, его UA IP и прочее передаются другому серверу на обработку и по получению ответа выполнить определенные действия ....

моя схема ( может кто посоветует лучше, знаю можно через Sql , не подходит)
ГЛАВНОЕ!! все должно обработаться в одном запросе.
1) первый код отправляет через get в запросе данные и ждет какого либо содержимого в файле test.txt
2) приемный сервер получает их ... обрабатывает
3) также через GET отправляет обработанные данные файлу get.php
4) происходит запись данныx файлом get.php в test.txt
5) в это время index.php (первый файл) с периодичностью проверяет на наличие записи test.txt
6) как появилась запись , считал и обработал

вот самое то место sleep(0.5); где может зациклиться и зависнуть скрипт , кто предложит лучшее решение данного вопроса

буду очень признателен!

1) скрипт
PHP:
скопировать код в буфер обмена
  1. <META content="text/html; charset=utf-8" http-equiv=Content-Type>
  2. <?PHP
  3. //определяем константу для имени файла
  4. define('FILENAME', 'test.txt');
  5. while(true) {
  6. // проверяем наличие содержимого в файле, считывая содержимое файла в строку
  7.   if (file_get_contents(FILENAME) == "") {
  8.  
  9.   echo "Упсс пусто! )!!";
  10.   sleep(0.5);
  11.   }else
  12.   {
  13.   echo" wow записали чего то ";
  14.   break;
  15.   }
  16. }
  17. ?>

2) скрипт get.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // имя файла, в который производиться запись POST или GET запроса
  3. $filename = "test.txt";
  4. // имя поля в POST или GET запросе
  5. $name_var='request';
  6. // проверка существования файла
  7. if (file_exists($filename)) {
  8.   // если файл существует - открываем его
  9.   $file = fopen($filename, "w+");
  10. } else {
  11.   // если файл не существует - создадим его
  12.   $file = fopen($filename, "w+");
  13. }
  14. // данные из поля $name_var в POST или GET запросе
  15. //$text = $_POST[$name_var];
  16. $text = $_GET[$name_var];
  17. //(раскомментируйте нужную строку)
  18. // записываем строку в файл
  19. fwrite($file, $text);
  20. // закрываем файл
  21. fclose($file);
  22. // ответ скрипта на запрос
  23. echo "The request was accepted";
  24. ?>
2. Мелкий - 09 Сентября, 2016 - 12:22:07 - перейти к сообщению
Типичная синхронная схема взаимодействия:
отправляете второму серверу http-запрос. Тот что-то делает и что-то выводит в stdout. Первый получает ответ. Всё. Структуры удобно паковать в json.
3. dozer009 - 09 Сентября, 2016 - 12:46:35 - перейти к сообщению
Мелкий пишет:
Типичная синхронная схема взаимодействия:
отправляете второму серверу http-запрос. Тот что-то делает и что-то выводит в stdout. Первый получает ответ. Всё. Структуры удобно паковать в json.

четко кратко , лаконично! респект , с json к сожаления не имел котактов... ну что теперь будем грызтЬ гранит науки! хотелось что то у же говтовое, реализованное
4. LIME - 09 Сентября, 2016 - 14:01:41 - перейти к сообщению
dozer009 пишет:
хотелось что то у же говтовое, реализованное
http://php.net/manual/ru/function.curl-init.php
5. dozer009 - 09 Сентября, 2016 - 15:13:46 - перейти к сообщению
LIME пишет:
dozer009 пишет:
хотелось что то у же говтовое, реализованное
http://php.net/manual/ru/function.curl-init.php


точно в цеЛЬ!!!!


PHP:
скопировать код в буфер обмена
  1. // дополняем массив с данными файлами
  2.         foreach($files as $k => $file) {
  3.                 $postData[$k] = '@' . $file;
  4.         }
  5.         // создаем подключение
  6.         $ch = curl_init('http://digitorum.ru/system/php/Scripts/Dev/fileReceiver-php.php');
  7.         // устанавлваем даные для отправки
  8.         curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  9.         // флаг о том, что нужно получить результат
  10.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  11.         // отправляем запрос
  12.         $response = curl_exec($ch);
  13.         // закрываем соединение
  14.         curl_close($ch);
  15.        
  16.         var_export($response);

 

Powered by ExBB FM 1.0 RC1