首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何检查php脚本是否仍在运行

要检查 php 脚本是否仍在运行,您可以使用 PHP 内置函数 get_headers() 来检查请求是否还在进行中,以及 headers_sent() 来检查响应 headers 是否已经发送。下面是一个简单的代码示例:

代码语言:txt
复制
function isScriptStillRunning($scriptFilePath) {
    // 通过 HTTP 请求方法、时间和脚本文件路径来创建一个 HTTP 头
    $header = "GET /$scriptFilePath HTTP/1.1\r\n\
                Host: example.com\r\n\
                \r\n";
    
    if (headers_sent()) {
        // 如果响应标头已发送,则脚本的响应已完成
        return false;
    }

    // 发送 HTTP 请求并捕获响应
    ob_start();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://localhost/isScriptStillRunning.php");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $header);

    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
    // 当脚本执行完成时,响应头会被关闭,返回 HTTP_OK
    if ($http_code === 200) {
        $isScriptStillRunning = true;
    } else {
        // 否则返回 HTTP_NOT_MODIFIED,表示脚本的执行没有完成
        $isScriptStillRunning = false;
    }
    
    // 如果响应头被意外中断,这将关闭文件缓冲区
    ob_end_clean();

    return $isScriptStillRunning;
}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券