目录

Apache函数

  • apache_child_terminate — 在本次请求结束后终止 apache 子进程

  • apache_get_modules — 获得已加载的Apache模块列表

  • apache_get_version — 获得Apache版本信息

  • apache_getenv — 获取 Apache subprocess_env 变量

  • apache_lookup_uri — 对指定的 URI 执行部分请求并返回所有有关信息

  • apache_note — 取得或设置 apache 请求记录

  • apache_request_headers — 获取全部 HTTP 请求头信息

  • apache_reset_timeout — 重置 Apache 写入计时器

  • apache_response_headers — 获得全部 HTTP 响应头信息

  • apache_setenv — 设置 Apache 子进程环境变量

  • getallheaders — 获取全部 HTTP 请求头信息

      注意:被改名而成为 apache_request_headers() 的别名。因为此函数仅适用于 Apache 。 
    
  • virtual — 执行 Apache 子请求

FPM函数

  • fastcgi_finish_request — 冲刷(flush)所有响应的数据给客户端

    此函数冲刷(flush)所有响应的数据给客户端并结束请求。这使得客户端结束连接后,需要大量时间运行的任务能够继续运行。

    在调用这个函数的时候, 会发送响应, 关闭连接. 但是不会结束PHP的运行。

    参考鸟哥对于这个函数的理解:使用fastcgi_finish_request提高页面响应速度 - 风雪之隅

    echo '例子:';
    file_put_contents('log.txt', date('Y-m-d H:i:s') . " 上传视频\n", FILE_APPEND);
    fastcgi_finish_request();
    echo "形而上学";
    sleep(1);
    file_put_contents('log.txt', date('Y-m-d H:i:s') . " 转换格式\n", FILE_APPEND);
    sleep(1);
    file_put_contents('log.txt', date('Y-m-d H:i:s') . " 提取图片\n", FILE_APPEND);
    

    通过浏览器访问此脚本, 结果发现并没有输出函数之后相应的字符串"形而上学”,但却生成了相应的文件,并记录字符串到文件。由此说明在调用fastcgi_finish_request后,客户端响应就已经结束,但与此同时服务端脚本却继续运行。

    由于函数仅在FPM环境下有效,为了兼容性:

    if (!function_exists("fastcgi_finish_request")) {
        function fastcgi_finish_request()  {
        }
    }