今天看到dewen里面有人问,如何用php实现浏览器访问结束后继续执行后续代码,我写了个demo,在php-fpm环境下非常容易实现,fastcgi_finish_request即可。如果是其它容器,我想只能通过输出javascript到客户端实现跳转,然后后台继续执行。
demo如下,php-fpm测试可用,apache php-cgi由于没有环境没有测试。 (推荐学习:PHP视频教程)
<?php // 你要跳转的url$url = "http://www.baidu.com/"; // 如果使用的是php-fpmif(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 "location='$url'"; ob_flush(); flush();} // 这里是模拟你的耗时逻辑 sleep(2); file_put_contents('/tmp/test.log', 'ok');
登录后复制
以上就是PHP访问结束如何继续处理的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2148367.html