>  기사  >  백엔드 개발  >  PHP 예약 작업이 사용자 연결 상태를 감지합니다.

PHP 예약 작업이 사용자 연결 상태를 감지합니다.

高洛峰
高洛峰원래의
2016-12-01 09:43:391912검색

이번 글에서는 기획된 작업과 관련된 내용을 소개하겠습니다. 많은 도움이 되셨으면 좋겠습니다!

예약된 작업

코드는 다음과 같습니다.

ignore_user_abort(); // 用户关闭浏览器程序依然执行 
set_time_limit(0); // 不限制程序运行时间 
$interval = 3; // 程序循环间隔时间秒 

$link = mysql_connect('localhost', 'username', 'paswd'); 
mysql_select_db('test'); 
mysql_query("SET NAMES 'utf8'"); 

do { 
// 用户关闭浏览器停止 start 
echo str_repeat(' ', 4069); // php只在输出时才检查用户连接状态. 一些web服务器的output_buffering默认值是4096字符. 为确保flush()有效, 设置为4069. 
ob_flush(); 
flush(); 
// 用户关闭浏览器停止 end 

$query = "INSERT INTO `test`.`test_demo` (`title`, `content`) VALUES ('计划任务', '" . date("Y-m-d H:i:s", time()) . "')"; 
mysql_query($query); // 采用写入数据库验证程序 
sleep($interval); 
} while (true);

php 출력이 없으면 사용자는 연결 상태를 감지할 수 없습니다. 브라우저 프로그램을 닫아도 Apache 서비스가 중지되거나 다시 시작될 때까지 계속 실행됩니다.

코드는 다음과 같습니다.

// 用户关闭浏览器停止 start 
echo str_repeat(' ', 4069); // php只在输出时才检查用户连接状态. 一些web服务器的output_buffering默认值是4096字符. 为确保flush()有效, 设置为4069. 
ob_flush(); 
flush(); 
// 用户关闭浏览器停止 end

추천 학습: "PHP 비디오 튜토리얼"

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 주석 사양다음 기사:PHP 주석 사양