개발자공간/PHP
PHP 비동기 데이터전송(fsockopen)
냉국이
2023. 3. 28. 11:21
728x90
function cs_fsockopen($url, $send_data = [], $key){
$parts = parse_url($url);
$parts['scheme'] = $parts['scheme'] == 'https' ? 'ssl' : $parts['scheme'];
$parts['port'] = 80;
$parts['port'] = $parts['scheme'] == 'ssl' && $parts['port'] == 80 ? 443 : $parts['port'];
$parts['hostname'] = $parts['scheme'] == 'http' ? $parts['host'] : "{$parts['scheme']}://{$parts['host']}";
$SendString = json_encode($send_data);
$req = "";
$req .= "POST {$parts['path']} HTTP/1.1" . PHP_CRLF;
$req .= "Host: {$parts['host']}" . PHP_CRLF;
$req .= "Content-Type: application/json".PHP_CRLF;
$req .= "Authorization: key={$key}" . PHP_CRLF;
$req .= "Content-Length: " . strlen($SendString) . PHP_CRLF;
$req .= "Connection: Close". PHP_CRLF;
$req .= PHP_CRLF;
$req .= $SendString;
$fsock = @fsockopen($parts['hostname'], $parts['port'], $errno, $error, 10);
if(!$fsock) return false;
// $this->error = $error;
// $this->errno = $errno;
//전송 후 바로 커넥션 종료
@fwrite($fsock, $req);
@fclose($fsock);
}
300x250