当前位置 : 主页 > 网络编程 > PHP >

php异步调用.txt

来源:互联网 收集:自由互联 发布时间:2021-06-28
php异步调用.txt /** * 异步执行 * @param string $url 网址 * @param mixed $post post数据 * @param string $contentType */function async_exec($url, $post = '', $contentType = 'application/x-www-form-urlencoded', $isDebug = false){ i
php异步调用.txt
/**
 * 异步执行
 * @param  string $url 网址
 * @param  mixed $post post数据
 * @param  string $contentType
 */
function async_exec($url, $post = '', $contentType = 'application/x-www-form-urlencoded', $isDebug = false){
    if(strpos($url, 'http://') !== false || strpos($url, 'https://') !== false ){
        $u = parse_url($url);
        $host = $u['host'];
        $port = isset($u['port']) ? $u['port'] : 80;
        $url = str_replace($u['scheme'].'://'.$host.(isset($u['port']) ? ':'.$port : ''), '', $url);
    } else {
        $host = $_SERVER['HTTP_HOST'];
        $port = 80;
    }
    $fp = fsockopen ( "{$host}", $port, $errno, $errstr, 10);
    if (! $fp) {
        echo "{$errstr} {$errno} \\n";
    } else {
        if(!empty($post)){
            if(is_array($post)){
                $post = http_build_query($post);
            }
            $header = [
                'POST '.$url.' HTTP/1.1',
                'Accept: */*',
                'Host: '.$host,
                'Content-type: '.$contentType,
                'Content-Length: '.strlen($post),
                'Connection: Close',
                $post
            ];
        } else {
            $header = [
                'GET '.$url.' HTTP/1.1',
                'Host: '.$host,
                'Connection: Close'
            ];
        }
        fputs($fp, join("\r\n", $header)."\r\n\r\n");
        if($isDebug){
            while(!feof($fp)){
                 echo fgets($fp, 128);
                 break;
            }
        }
        fclose($fp);
    }
}
网友评论