请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师你好,为什么修改了live/login.html的内容后,刷新浏览器不生效呢

<?php

$host = '0.0.0.0';
$port = 8811;
$server = new swoole_http_server($host, $port);

$server->set([
    'enable_static_handler' => true,
    'document_root' => '/opt/htdocs/swoole/thinkphp/public/static',
    'worker_num' => 5,
]);

//此事件在Worker进程/Task进程启动时发生,这里创建的对象可以在进程生命周期内使用
$server->on('WorkerStart', function (swoole_server $serv, $worker_id){
    //定义应用目录
    define('APP_PATH', __DIR__ . '/../application/');
    //加载框架里面的文件
    require __DIR__ . '/../thinkphp/base.php';

});


/**
 * 获取请求
 * request: 请求信息
 * response: 返回信息
 */
$server->on('request', function($request, $response) use ($server){
    /**
     * 解决上一次输入的变量还存在的问题
     * 方案一:if(!empty($_GET)) {unset($_GET);}
     * 方案二:$http-close();把之前的进程kill,swoole会重新启一个进程,重启会释放内存,把上一次的资源包括变量等全部清空(如果用这个方法那就和php-fpm一样了,所以不推荐使用)
     * 方案三:$_SERVER  =  []
     * 方案四:改thinkphp 代码
     *      /opt/htdocs/swoole/thinkphp5/thinkphp/library/think/Request.php
     *          屏蔽 if (is_null($this->path)) {
     *          屏蔽 if (is_null($this->pathinfo)) {
     */
    if($request->server){
        foreach($request->server as $k=>$v){
            $_SERVER[strtoupper($k)] = $v;
        }
    }

    if($request->header){
        foreach($request->header as $k=>$v){
            $_SERVER[strtoupper($k)] = $v;
        }
    }

    if($request->get){
        foreach($request->get as $k=>$v){
            $_GET[$k] = $v;
        }
    }

    if($request->post){
        foreach($request->post as $k=>$v){
            $_POST[$k] = $v;
        }
    }

    ob_start();
    try{
        think\Container::get('app', [APP_PATH])
            ->run()
            ->send();
    }catch (Exception $e) {

    }
    $res = ob_get_contents();
    ob_end_clean();
    $response->end($res);
});

$server->start();


正在回答 回答被采纳积分+3

1回答

singwa 2018-07-23 12:39:05

刷新浏览器 swoole终端有没有报错信息的提示呢,??

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信