오늘 dewen에서 누군가 브라우저 액세스가 끝난 후 후속 코드를 계속 실행하기 위해 php를 사용하는 방법을 묻는 것을 봤습니다. 데모를 작성했습니다. php-fpm 환경에서는 fastcgi_finish_request만 구현하면 매우 쉽습니다. 다른 컨테이너라면 자바스크립트를 클라이언트에 출력한 후 백그라운드에서 계속 실행해야만 점프가 가능하다고 생각합니다.
데모는 아래와 같고, php-fpm 테스트는 가능하지만, apache php-cgi는 환경이 없어서 테스트를 하지 않았습니다. (추천 학습: PHP 비디오 튜토리얼)
<?php // 你要跳转的url $url = "http://www.baidu.com/"; // 如果使用的是php-fpm if(function_exists('fastcgi_finish_request')){ header("Location: $url"); ob_flush(); flush(); fastcgi_finish_request(); // Apache ? }else{ header( 'Content-type: text/html; charset=utf-8' ); if(function_exists('apache_setenv'))apache_setenv('no-gzip', '1'); ini_set('zlib.output_compression', 0); ini_set('implicit_flush', 1); echo "<script>location='$url'</script>"; ob_flush(); flush(); } // 这里是模拟你的耗时逻辑 sleep(2); file_put_contents('/tmp/test.log', 'ok');
위 내용은 PHP 액세스 종료 후 처리를 계속하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!