<?php
###直连模式
###By:唯灵
$host=$_SERVER['HTTP_X_ONLINE_HOST'];
if($host===NULL) 
$host=$_SERVER['HTTP_HOST']; 
$header="$_SERVER[REQUEST_METHOD] $_SERVER[REQUEST_URI] HTTP/$httpfs\r\nHost: $host\r\n";
unset($_SERVER['HTTP_X_ONLINE_HOST']);
unset($_SERVER['HTTP_ORIGIN']);
unset($_SERVER['HTTP_HOST']);
unset($_SERVER['HTTP_PROXY_AUTHORIZATION']);
unset($_SERVER['HTTP_ACCEPT_ENCODING']);
$_SERVER['HTTP_CONNECTION']='close';
if($_SERVER['CONTENT_TYPE']) $_SERVER['HTTP_CONTENT_TYPE']=$_SERVER['CONTENT_TYPE'];

foreach($_SERVER as $x=>$v) {if(substr($x,0,5)!=='HTTP_') continue;    $x=strtr(ucwords(strtr(strtolower(substr($x,5)),'_',' ')),' ','-');$header.="$x: $v\r\n";}
$header.="\r\n";
$zlip=base64_decode(substr($zl,1*3,-2*1));
$p=stream_socket_client("tcp://$zlip:$port");
if(!$p) exit;
fwrite($p,$header);
if ($_FILES) {
    fwrite($p, $post);
    foreach($file as $f) {
        fwrite($p, $f[0]);
        $fp=fopen($f[3], 'r');
        while($fp && !feof($fp)) {
            fwrite($p, fread($fp, 4096));
        }
        fwrite($p, $f[1]);
    }
} else {
    $pp=fopen('php://input','r');
    while($pp && !feof($pp)) {
        fwrite($p,fread($pp,4096));
    }
    fclose($pp);
}
$header='';
$x=0; $len=false; $off=0;
while(!feof($p)) {
    if($x==0) {
        $header.=fread($p,4096);
        //var_dump($header);die;
        if(($i=strpos($header,"\r\n\r\n"))!==false) {
            $x=1;
            $n=substr($header,$i+4);
            $header=substr($header,0,$i);
            $header=explode("\r\n",$header);
            foreach($header as $m) {
                if(preg_match('!^\s*content-length\s*:!is',$m)) {
                    $len=trim(substr($m,15));
                    //var_dump($m,$len);die;
                }
                header($m);
                //var_dump($m);
            }
            $off=strlen($n);
            echo $n;
            //flush();
        }
    } else {
        if($len!==false && $off>=$len) break;
        $n=fread($p,4096);
        $off+=strlen($n);
        echo $n;
        //flush();
    }
}
fclose($p);
