如何在用户中止了浏览器之后,让php程序360继续浏览器运行

PHP程序设计教案_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
PHP程序设计教案
上传于|0|0|文档简介
&&PHP程序设计教案
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩42页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢如何在用户中止了浏览器之后,让php程序继续运行?
我的图书馆
如何在用户中止了浏览器之后,让php程序继续运行?
标题: 忘了,问一下:如何在用户中止了浏览器之后,让php程序继续运行?
作者: spiceboy & & 时间:
17:36 & & 标题: 忘了,问一下:如何在用户中止了浏览器之后,让php程序继续运行?有个参数什么的吧。是什么参数啊?
作者: 北京野狼 & & 时间:
17:40??????????????????????????????????
作者: spiceboy & & 时间:
17:47不用回了。知道了。ignore_user_abort
作者: 北京野狼 & & 时间:
17:58你再好好想想。
作者: spiceboy & & 时间:
18:00就是它啊。还想啥?算了,不跟你说话,你肯定又打算钻我牛角尖。可我需要的就是这个。
作者: 北京野狼 & & 时间:
18:04应该说您自己的牛角太大不用钻。&&你总是不考虑清楚就出来发表意见, 那就不要抱怨。这不是好态度。你需要的不是这个。[ 本帖最后由 北京野狼 于
18:05 编辑 ]
作者: spiceboy & & 时间:
18:12好好。我需要的不是这个。不是这个。。。。。我再去重新找。
作者: 北京野狼 & & 时间:
18:15服务器如何知道用户中止了浏览器 ?
作者: spiceboy & & 时间:
18:19别急啊我不是正在找吗找到了再告诉你。
作者: 北京野狼 & & 时间:
18:26找到之后,别忘了通知官方更新一下http协议
作者: spiceboy & & 时间:
19:20好的,没问题。
作者: yzmxf & & 时间:
19:24呵呵感觉没有可能
作者: 韩三普 & & 时间:
23:59这个功能要配置Apache实现。当你关了浏览器,apache仍然会做为进程工作,我曾经用这个功能,抓过几G的图片
作者: spiceboy & & 时间:
00:02那楼上的你改http协议了没?
作者: achieverain & & 时间:
00:05曾经讨论过这个问题。你找一下老帖子
作者: mike519 & & 时间:
00:32北京野狼 有个性spiceboy&&还没明白怎么回事啊
作者: 北京野狼 & & 时间:
09:45其实与http协议和apache没什么关系。 你想想qq, 等客户端软件, 断网了服务器能立刻知道吗?只要客户端发出请求,服务器都是执行完了再说。
作者: wobushiwo & & 时间:
11:17当一个请求完了,服务器和客户端之间就不存在状态了比如 客户端请求,服务端因为什么事响应太慢,这时突然关掉浏览器或点“停止”或是服务器在给客户端发送数据时,执行了上面的操作,服务器才能知道总而言之,要捕抓到这一动作,除非是两者在通信时发生的事情跟HTTP协议没关系,这是socket层面的,它只是规范信息传递的格式
作者: wobushiwo & & 时间:
11:19好像有点跑题了。。。
如何在用户中止了浏览器之后,让php程序继续运行?
一个完整的请求过去,服务器就会跑完这个请求了啊。。。
作者: 网络混混 & & 时间:
11:46register_shutdown_function
作者: spiceboy & & 时间:
13:13carlos at fischerinformatica dot com dot br31-Jan- Very very useful!I was building a chat and I wanted my script to detect when the browser was closed, so the user could be deleted from the online_users table.&?echo str_repeat(" ",300);ignore_user_abort(true); //this way, the user can stop the output, but not the script.while (true) {& && && &echo "test&br&\n";& && && &flush();& && && &sleep(2);& && && &if (connection_status()!=0){& && && && && &&&include (‘dbconnect.inc‘);& && && && && &&&$sql="delete from online_users where online_user=$user";& && && && && &&&$sql_exec=pg_exec($vChatDB, $sql);& && && && && &&&die(); //kills the script& && && &}}?&
作者: 北京野狼 & & 时间:
I was building a chat and I wanted my script to detect when the browser was closed
如果你也做聊天室,可以考虑。
作者: spiceboy & & 时间:
13:28&superspice AT yeah.net& wrote:vi ignore.php
&?phpSet_Time_Limit(0);ignore_user_abort(true);echo "begin, please close or stop your browser in 10 seconds\n";sleep(10);touch("test.txt");echo "end";?&
I browsed ignore.php with my browser, 10 seconds later, test.txt was created.Then I deleted "test.txt",&&refreshed this page and closed it within 3 seconds.After a few seconds, "test.txt" was created as before.It showed me the case that the aborting of users‘ browsing had been ignored.
作者: spiceboy & & 时间:
13:32I wrote a simple function that can "spawn" another thread within the webserver by making async http request. The page that is being spawned can call ignore_user_abort() and do whatever it wants in the background...&?php& &function http_spawn($page)& &{& && & $basepath=ereg_replace(‘[^/]*$‘, ‘‘, $_SERVER[‘PHP_SELF‘]);& && & $cbSock=fsockopen(‘localhost‘, $_SERVER[‘SERVER_PORT‘], $errno, $errstr, 5);& && & if ($cbSock)& && & {& && && &&&fwrite($cbSock, "GET {$basepath}{$page} HTTP/1.0\r\n"& && && && && &."Host: {$_SERVER[‘HTTP_HOST‘]}\r\n\r\n");& && & }& &}?&Example:&?php& &if ($search_initialized)& && & http_spawn("ftindex.php");?&
作者: spiceboy & & 时间:
&?phpignore_user_abort(true);// 1.1 处理用户提交数据$Adodb-&StartTrans();& & .........................& & .........................$Adodb-&CompleteTrans();/* 用户可能在1.1执行完成后,而2.1没有执行前的此处关闭浏览器或死机? */// 1.2 处理另一部分数据$Adodb-&StartTrans();& & .........................& & .........................$Adodb-&CompleteTrans();// 1.3 校验整个数据的一致性和完整性,并写错误日志& &dosomething();?&
当一个页面里放置了2个或2个以上的事务操作。需要这个页面不被中断。以保持数据的一致性。
作者: 北京野狼 & & 时间:
13:54你真好有趣啊, 还是再想想吧
TA的最新馆藏博客访问: 230957
博文数量: 54
博客积分: 3042
博客等级: 中校
技术积分: 566
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
典型的B/S程序中Broswer和Server是共生的,Browser关闭了,在Server上跑的脚本也会自动终止。但是服务器端的终止操作也是由php引擎发出的,所以为了一些特使应用,PHP的开发者搞出了一个函数叫ignore_user_abort(),通过调用这个函数允许php脚本一直运行下去,不管浏览器是已经关闭,但是应用这个函数需要在php.ini中将ignore_user_abort设置为on,通常还要用set_time_limit(0)配合使用。下面给出一个测试程序:
<?php&ini_set("ignore_user_abort",true);&set_time_limit(0);&ignore_user_abort(true); &sleep(30);&$fp = fopen("out.txt","w");&for($i=0;$i<10;$i++){&&&&fwrite($fp,$i."\r\n");&}?>
在浏览器执行这个程序后,然后关掉它,静候30秒后会在当前目录下生成一个out.txt
阅读(1233) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。}

我要回帖

更多关于 360浏览器继续下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信