예제 #1
0
파일: server.php 프로젝트: ppker/swoole-src
function no_chunk(swoole_http_request $request, swoole_http_response $response)
{
    //	try
    //	{
    //		if (rand(1, 99) % 2 == 1)
    //		{
    //			throw new Exception("just for fun.");
    //		}
    //		$response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
    //	}
    //	catch(Exception $e)
    //	{
    //		$response->end("<h1>Exceptiom</h1><div>".$e->getMessage()."</div>");
    //	}
    var_dump($request->server['request_uri'], substr($request->server['request_uri'], -4, 4));
    if (substr($request->server['request_uri'], -4, 4) == '.jpg') {
        $response->header('Content-Type', 'image/jpeg');
        $response->sendfile(__DIR__ . $request->server['request_uri']);
    } else {
        //    var_dump($request->files);
        //    var_dump($request->post);
        //    var_dump($request->cookie);
        //    var_dump($request->rawContent());
        //    if ($request->server['request_method'] == 'POST')
        //    {
        //        var_dump($request->post);
        //    }
        $response->end("<h1>Hello Swoole.</h1>");
    }
    return;
    //var_dump($request);
    //    var_dump($_GET);
    //var_dump($_POST);
    //var_dump($_COOKIE);
    //$response->status(301);
    //$response->header("Location", "http://www.baidu.com/");
    //$response->cookie("hello", "world", time() + 3600);
    //    $response->header("Content-Type", "text/html; charset=utf-8");
    //var_dump($request->post);
    //    var_dump($request->get);
    //    echo strlen(gzdeflate("<h1>Hello Swoole.</h1>"));
    //    $response->end("<h1>Hello Swoole.</h1>");
    //$response->end("<h1>Hello Swoole. #".str_repeat('A', rand(100, 999))."</h1>");
    //global $http;
    //$http->task("hello world");
    $file = realpath(__DIR__ . '/../' . $request->server['request_uri']);
    if (is_file($file)) {
        echo "http get file={$file}\n";
        if (substr($file, -4) == '.php') {
            $response->gzip();
        } else {
            $response->header('Content-Type', 'image/jpeg');
        }
        $content = file_get_contents($file);
        echo "response size = " . strlen($content) . "\n";
        //        $response->write($content);
        //        $response->end();
        $response->end($content);
    } else {
        $response->end("<h1>Hello Swoole.</h1>");
    }
}
예제 #2
0
 function doStatic(\swoole_http_request $req, \swoole_http_response $resp)
 {
     $file = $this->document_root . $req->server['request_uri'];
     $read_file = true;
     $fstat = stat($file);
     //过期控制信息
     if (isset($req->header['if-modified-since'])) {
         $lastModifiedSince = strtotime($req->header['if-modified-since']);
         if ($lastModifiedSince and $fstat['mtime'] <= $lastModifiedSince) {
             //不需要读文件了
             $read_file = false;
             $resp->status(304);
         }
     } else {
         $resp->header('Cache-Control', "max-age={$this->expire_time}");
         $resp->header('Pragma', "max-age={$this->expire_time}");
         $resp->header('Last-Modified', date(self::DATE_FORMAT_HTTP, $fstat['mtime']));
         $resp->header('Expires', "max-age={$this->expire_time}");
     }
     if ($read_file) {
         $extname = Swoole\Upload::getFileExt($file);
         if (empty($this->types[$extname])) {
             $mime_type = 'text/html; charset=' . $this->charest;
         } else {
             $mime_type = $this->types[$extname];
         }
         $resp->header('Content-Type', $mime_type);
         $resp->sendfile($file);
     } else {
         $resp->end();
     }
     return true;
 }
예제 #3
0
function no_chunk(swoole_http_request $request, swoole_http_response $response)
{
    /**
     * Cookie Test
     */
    //$response->cookie('test1', '1234', time() + 86400, '/');
    //    $response->cookie('test2', '5678', time() + 86400);
    //    var_dump($response->cookie);
    //    var_dump($request->cookie);
    //	try
    //	{
    //		if (rand(1, 99) % 2 == 1)
    //		{
    //			throw new Exception("just for fun.");
    //		}
    //		$response->end("<h1>Hello Swoole. #".rand(1000, 9999)."</h1>");
    //	}
    //	catch(Exception $e)
    //	{
    //		$response->end("<h1>Exceptiom</h1><div>".$e->getMessage()."</div>");
    //	}
    //var_dump($request->server['request_uri'], substr($request->server['request_uri'], -4, 4));
    if (substr($request->server['request_uri'], -8, 8) == 'test.jpg') {
        $response->header('Content-Type', 'image/jpeg');
        $response->sendfile(dirname(__DIR__) . '/test.jpg');
        return;
    }
    if ($request->server['request_uri'] == '/favicon.ico') {
        $response->status(404);
        $response->end();
        return;
    }
    //    else
    //    {
    //var_dump($request->post);
    //var_export($request->cookie);
    //    var_dump($request->rawContent());
    //    if ($request->server['request_method'] == 'POST')
    //    {
    //        var_dump($request->post);
    //    }
    //    echo "GET:" . var_export($_GET, true)."\n";
    //    echo "POST:" . var_export($_POST, true)."\n";
    //    echo "get:" . var_export($request->get, true)."\n";
    //    echo "post:" . var_export($request->post, true)."\n";
    //var_dump($request->server);
    $output = '';
    $output .= "<h2>HEADER:</h2>" . dump($request->header);
    $output .= "<h2>SERVER:</h2>" . dump($request->server);
    if (!empty($request->files)) {
        $output .= "<h2>FILE:</h2>" . dump($request->files);
    }
    if (!empty($request->cookie)) {
        $output .= "<h2>COOKIES:</h2>" . dump($request->cookie);
    }
    if (!empty($request->get)) {
        $output .= "<h2>GET:</h2>" . dump($request->get);
    }
    if (!empty($request->post)) {
        $output .= "<h2>POST:</h2>" . dump($request->post);
    }
    //$response->header('X-Server', 'Swoole');
    //unset($request, $response);
    //    swoole_timer_after(2000, function() use ( $response) {
    $response->end("<h1>Hello Swoole.</h1>" . $output);
    //    });
    //    }
    return;
    //var_dump($request);
    //    var_dump($_GET);
    //var_dump($_POST);
    //var_dump($_COOKIE);
    //$response->status(301);
    //$response->header("Location", "http://www.baidu.com/");
    //$response->cookie("hello", "world", time() + 3600);
    //    $response->header("Content-Type", "text/html; charset=utf-8");
    //var_dump($request->post);
    //    var_dump($request->get);
    //    echo strlen(gzdeflate("<h1>Hello Swoole.</h1>"));
    //    $response->end("<h1>Hello Swoole.</h1>");
    //$response->end("<h1>Hello Swoole. #".str_repeat('A', rand(100, 999))."</h1>");
    //global $http;
    //$http->task("hello world");
    $file = realpath(__DIR__ . '/../' . $request->server['request_uri']);
    if (is_file($file)) {
        echo "http get file={$file}\n";
        if (substr($file, -4) == '.php') {
            $response->gzip();
        } else {
            $response->header('Content-Type', 'image/jpeg');
        }
        $content = file_get_contents($file);
        echo "response size = " . strlen($content) . "\n";
        //        $response->write($content);
        //        $response->end();
        $response->end($content);
    } else {
        $response->end("<h1>Hello Swoole.</h1>");
    }
}