2010-12-29 4 views
0

안녕,PHP 소켓을 사용하여 배열 게시

PHP Soket을 사용하여 게시물 데이터를 보내려고합니다.

게시 방법

예컨대 $postData = array('value1', 'value2', 'value3'); 나는 "myweb.php"페이지 PHP 소켓을 사용하려면 "의 index.php"에서 $ postData를를 보낼

.

미리 감사드립니다.

답변

1

데이터를 어떻게 든 직렬화해야합니다. PHP 스크립트간에 serialize()unserialize()을 사용할 수 있습니다. 그러나 다른 사용자가 데이터를 사용한다고 생각하면 JSON이 선호 될 수 있습니다. json_encode()json_decode()

0

AJAX 요청을 작성하려고하지 않습니까? 소켓은 서버 측에서 만들어 지므로 웹 페이지에서 소켓을 생성하는 것은 그리 특이하지는 않지만 돌아 서서 로컬 리소스에 대한 HTTP 연결을 설정하는 것은 이상합니다.

+1

아니요, 저는 아약스 요청을하고 있지 않습니다. 나는 단순히 HTTP 요청을 호출하려고한다. GET으로 데이터를 전달할 수 있습니까? –

+1

나는 대답을 얻었다. HTTP_Request 및 어댑터를 소켓으로 사용하여 데이터를 목적지에 게시 할 수 있습니다. 감사 ! –

1
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); 
    } 
} 
관련 문제