continue processing php after sending http response

后端 未结 12 860
旧时难觅i
旧时难觅i 2020-11-22 13:06

My script is called by server. From server I\'ll receive ID_OF_MESSAGE and TEXT_OF_MESSAGE.

In my script I\'ll handle incoming text and ge

12条回答
  •  情话喂你
    2020-11-22 13:23

    I have something that can compressed and send the response and let other php code to execute.

    function sendResponse($response){
        $contentencoding = 'none';
        if(ob_get_contents()){
            ob_end_clean();
            if(ob_get_contents()){
                ob_clean();
            }
        }
        header('Connection: close');
        header("cache-control: must-revalidate");
        header('Vary: Accept-Encoding');
        header('content-type: application/json; charset=utf-8');
        ob_start();
        if(phpversion()>='4.0.4pl1' && extension_loaded('zlib') && GZIP_ENABLED==1 && !empty($_SERVER["HTTP_ACCEPT_ENCODING"]) && (strpos($_SERVER["HTTP_ACCEPT_ENCODING"], 'gzip') !== false) && (strstr($GLOBALS['useragent'],'compatible') || strstr($GLOBALS['useragent'],'Gecko'))){
            $contentencoding = 'gzip';
            ob_start('ob_gzhandler');
        }
        header('Content-Encoding: '.$contentencoding);
        if (!empty($_GET['callback'])){
            echo $_GET['callback'].'('.$response.')';
        } else {
            echo $response;
        }
        if($contentencoding == 'gzip') {
            if(ob_get_contents()){
                ob_end_flush(); // Flush the output from ob_gzhandler
            }
        }
        header('Content-Length: '.ob_get_length());
        // flush all output
        if (ob_get_contents()){
            ob_end_flush(); // Flush the outer ob_start()
            if(ob_get_contents()){
                ob_flush();
            }
            flush();
        }
        if (session_id()) session_write_close();
    }
    

提交回复
热议问题