PHP CURL 异步请求

/**
 * php异步请求 (全路径:www.a.com/a/b.php)
 * @param string $host  主机地址 例如: www.a.com
 * @param string $path  路径    例如: /a/b.php
 * @param array $param  请求参数
 * @param int $port 端口
 * @return string
 */
function asyncRequest($host, $path, $param = array(),$port=80){
    $query = isset($param) ? http_build_query($param) : '';
    $errno = 0;
    $errstr = '';
    $timeout = 30; //连接超时时间(S)

    $fp = @fsockopen($host, $port, $errno, $errstr, $timeout);

    if (!$fp) {
        //连接失败
        return false;
    }
    if ($errno || !$fp) {
        // $errstr
        return false;
    }
    stream_set_blocking($fp,0); //非阻塞
    stream_set_timeout($fp, 1);//响应超时时间(S)
    $out  = "POST " . $path . " HTTP/1.1\r\n";
    $out .= "host:" . $host . "\r\n";
    $out .= "content-length:" . strlen($query) . "\r\n";
    $out .= "content-type:application/x-www-form-urlencoded\r\n";
    $out .= "connection:close\r\n\r\n";
    $out .= $query;

    $result = @fputs($fp, $out);

    @fclose($fp);
    return $result;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容