• PHP实现异步请求非阻塞


    PHP实现异步请求非阻塞

    function fosck_post($url, $param){
    
        $host = parse_url($url, PHP_URL_HOST);
        $port = 80;
    
        $urlInfo = parse_url($url);
        if (isset($urlInfo['scheme']) && strcasecmp($urlInfo['scheme'], 'https') === 0) //HTTPS
        {
            $prefix = 'ssl://';
            $port = 443;
        }else{  //HTTP
            $prefix = 'tcp://';
            $port = isset($urlInfo['port']) ? $urlInfo['port'] : 80;
        }
    
    
        $errno = '';
        $errstr = '';
        $timeout = 30;
    
        $data = http_build_query($param);
    
        // create connect
        $fp = fsockopen($prefix. $host, $port, $errno, $errstr, $timeout);
    
        if(!$fp){
            return false;
        }
    
        // send request
        $out = "POST ${url} HTTP/1.1
    ";
        $out .= "Host:${host}
    ";
        $out .= "Content-type:application/x-www-form-urlencoded
    ";
        $out .= "Content-length:".strlen($data)."
    ";
        $out .= "Connection:close
    
    ";
        $out .= "${data}";
    
        fwrite($fp, $out);
    
        //忽略执行结果;否则等待返回结果
        //        if(APP_DEBUG === true){
        if(false){
            $ret = '';
            while (!feof($fp)) {
                $ret .= fgets($fp, 128);
            }
        }
    
        usleep(20000); //fwrite之后马上执行fclose,nginx会直接返回499
    
        fclose($fp);
    }
    
  • 相关阅读:
    Loj #6560 小奇取石子
    某谷 P5153 简单的函数
    某谷 P5159 WD与矩阵
    前端ajax访问 django 报错 POST http://127.0.0.1:8001/xxx 403 (Forbidden)
    python
    Java
    Java
    Java
    Java
    java web 向数据库插入中文数据乱码问题
  • 原文地址:https://www.cnblogs.com/ccw869476711/p/15149054.html
Copyright © 2020-2023  润新知