테스트 사이트 - 개발 중인 베타 버전입니다

php async

· 7년 전 · 3567 · 3

[code]

// POST방식으로 fsockopen 통신 :: 리턴값은 없고 보내고 바로 커넥션을 끊는다
/*
    예제
        curl_async('http://example.com/test.php');
        curl_async('https://example.com/test.php');
        curl_async('/test.php');
*/
function curl_async($url) {
    $parts = parse_url($url);
    if(empty($parts['host'])) {
        $parts['scheme'] = '';
        $parts['host'] = reset(explode(':', $_SERVER['HTTP_HOST']));
        $parts['port'] = (count(explode(':', $_SERVER['HTTP_HOST'])) > 1?end(explode(':', $_SERVER['HTTP_HOST'])):80);
        if($parts['port'] != '80') $parts['scheme'] = 'https';
    }
    if(is_array($parts) && isset($parts['query'])) $post_string = $parts['query'];
    else $post_string = '';
    $fp = fsockopen(($parts['scheme'] == 'https'?'ssl://':null).$parts['host'], isset($parts['port'])?$parts['port']:80,  $errno, $errstr, 10);
    $out = "POST ".$parts['path']." HTTP/1.1\r\n";
    $out.= "Host: ".$parts['host']."\r\n";
    $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
    $out.= "Content-Length: ".strlen($post_string)."\r\n";
    $out.= "Connection: Close\r\n\r\n";
    if(isset($post_string)) $out.= $post_string;
    fwrite($fp, $out);
    fclose($fp);
}

[/code]

리턴 없이 데이터를 수행 할때 유용합니다.

 

저같은 경우는 SMS인증 하기라든지 메일링 대량 발송등에 사용 하고 있습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 3개

값은 어떻게 전달하나요?
curl_async('https://example.com/test.php?aaa=1&bbb=2');
이렇게보내면 되나요?
네!
주석을 참조하시면 됩니다!
네 감사합니다.. 잘 쓸게요~ ^^

게시글 목록

번호 제목
15969
jQuery .jquery
15968
15967
jQuery .is()
15966
15965
15964
15963
15962
jQuery .index()
15961
15960
15959
jQuery .html()
15958
15957
jQuery .hide ()
15956
15955
15954
15953
15952
15949
15947
15946
15945
15944
15942
15941
15940
15939
15938
15937
15936