浏览器网页关闭,对应的php程序仍在执行
浏览器中的网页关闭,对应的php程序没有随着网页关闭而终止,而是要执行完毕。用例:
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
for($i=0;$i<20;$i++){
$time=time();
mysql_query("insert into test.t1 values(0,'$time')");
sleep(1);
}访问网页,然后立即关闭网页,php程序仍会插完20条记录才终止。小弟的问题:我一直认为php程序无论是浏览器还是命令行上执行
只要关闭了,就会自动停止,
难道关了 后台还能一直执行程序 有点晕了 求大牛帮忙捋一捋 跪谢 祝好心人一生平安
浏览器中的网页关闭,对应的php程序没有随着网页关闭而终止,而是要执行完毕。用例:
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
for($i=0;$i<20;$i++){
$time=time();
mysql_query("insert into test.t1 values(0,'$time')");
sleep(1);
}访问网页,然后立即关闭网页,php程序仍会插完20条记录才终止。小弟的问题:我一直认为php程序无论是浏览器还是命令行上执行
只要关闭了,就会自动停止,
难道关了 后台还能一直执行程序 有点晕了 求大牛帮忙捋一捋 跪谢 祝好心人一生平安
每当php程序有输出时(echo、print...)php会检查用户连接是否还存在,如不存在了就判定浏览器关闭了在你的代码中并没有诸如echo之类的语句,那么php就不会去检查浏览器是否被关闭了
于是就出现了你观察到的现象,这是正常的!
徐哥好像说的没到重点上<?php
set_time_limit(0);
$link = mysql_connect("localhost","root","123456");
$conn = mysql_select_db("test2");
for($i=0; $i<100; $i++) {
echo "$i"."<br/>";
$sql = "insert into demo values(null,$i)";
$query = mysql_query($sql) or die(mysql_error());
sleep(1);
}
?>
上面这个代码 有echo输出了 奈何 打开浏览求执行 立即关闭 还是能插入100条 不信徐哥你亲自试试 麻烦徐哥了 跪谢 祝好心人有好报 thx
ob_flush();这两行,再试
就是不知道为什么只加flush();这一句 就失灵了
或者只加ob_flush();这一句 同样失灵了奈何两句都要加啊 不都是输出缓存吗 最后麻烦大哥帮人帮到底 帮解惑小弟这最后一个问题 跪谢 祝大哥万事顺利 家庭幸福