Разместите массив с помощью PHP-сокета - PullRequest
0 голосов
/ 29 декабря 2010

HI,

Я хочу отправить данные поста с помощью PHP Soket.

Как мне публиковать?

Например $postData = array('value1', 'value2', 'value3');

Я хочуотправить $ postData со страницы «index.php» на страницу «myweb.php» с помощью PHP Socket.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 01 мая 2011
 function http_request($request_url, $type='get', $data=array()) {
    $url   = parse_url($request_url);
    $host  = $url['host'];
    $path  = $url['path'];
    $query = $url['query'];
    $path .= $query ? '?'. $query : '';

    $parameter = $sep = '';
    if (!empty($data)) {
        foreach ($data as $key => $value){
            $parameter .= $sep . urlencode($key) .'='. urlencode($value);
            $sep = '&';
        }
    }
    if (strtolower($type) == 'get') {
        $path .= $parameter;
        $out  = "GET {$path} HTTP/1.1\r\n";
        $out .= "Accept: */*\r\n";
        $out .= "Accept-Language: zh-cn\r\n";
        $out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
        $out .= "Host: {$host}\r\n";
        $out .= "Connection: Close\r\n\r\n";
    } else {
        $out  = "POST {$path} HTTP/1.1\r\n";
        $out .= "Accept: */*\r\n";
        $out .= "Accept-Language: zh-cn\r\n";
        $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
        $out .= "User-Agent: {$_SERVER['HTTP_USER_AGENT']}\r\n";
        $out .= "Host: {$host}\r\n";
        $out .= 'Content-Length: '.strlen($parameter)."\r\n";
        $out .= "Connection: Close\r\n\r\n";
        $out .= $parameter;
    }
    $fp = fsockopen($host, 80, $errno, $errstr, 30);
    if ($fp) {
        fwrite($fp, $out);
        fclose($fp);
    }
 }
1 голос
/ 29 декабря 2010

Вам нужно как-то сериализовать данные. Вы можете использовать serialize () и unserialize () между сценариями PHP; однако, если вы считаете, что данные будут использоваться другими, JSON может оказаться предпочтительным: json_encode () и json_decode ()

0 голосов
/ 29 декабря 2010

Вы уверены, что не пытаетесь просто создать запрос AJAX? Сокеты создаются на стороне сервера, поэтому, хотя создание сокета на веб-странице не так уж и необычно, странно, что он поворачивается и устанавливает HTTP-соединение с локальным ресурсом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...