Передача массива через сокеты

Тема в разделе "PHP", создана пользователем uNknownMark, 17 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Добрый день всем. Есть такая задача:
    Есть скрипт А расположенный на локальной машине на веб-серевере который соединяется с помощью сокетов с скриптом Б который расположен на хостинге в инете.
    Скрипт А посылает на скрипт Б методом POST запрос, после того как скрипт Б отработает он должен вернуть массив.
    Вопрос такой как лучше этот массив сохранять?Понятно, что можно просто в скрипте Б выводить значения массива echo, а скриптом А выдергивать их, но этот вариант как мне кажется не очень удобен.
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Сериализация или JSON.
     
  3. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Не совсем понял. Напишу чуть подробнее как я себе сейчас представляю это дело.
    Скрипт А:
    PHP:
    $header .= "GET /administrator/index.php HTTP/1.0\r\n";
    $fp fsockopen ('tcp://www.rrrrr.rr'80$errno$errstr30);
    if (!
    $fp) {SaveLog("HTTP ERROR by validate: $errno$errstr"); exit(1);}

    fwrite ($fp$header);
    while (!
    feof($fp)) {
        
    $res.= fgets ($fp1024);
    }
    fclose ($fp);
    Скрипт Б:
    PHP:
    bla-bla-bla
    //Тут у нас есть массив
    Если написать например, foreach ($aArray as $iKey=>$sValue) echo $key.":'.$value;

    то в скрипте А в переменной $res кроме кучи http заголовков можно будет также найти и этот массив и спарсить его.
    PHP_Master, а что ты имел ввиду?
     
  4. Nafania

    Nafania

    Регистр.:
    24 мар 2007
    Сообщения:
    167
    Симпатии:
    46
    Зачем массив разбивать циклом, а потом обратно фик знает как собирать когда есть, как уже указал PHP_Master, serialize - unserialize?
     
  5. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    я бы сделал так
    PHP:
    // кодируем массив
    $transfer=base64_encode(serialize($array));
    // делаем пересылку .....

    // и обратно получаем 
    $array=unserialize(base64_decode($_POST['transfer']));

     
Статус темы:
Закрыта.