백엔드 개발 PHP 튜토리얼 php ignore_user_abort() 函数实现客户端断开脚本继续执行

php ignore_user_abort() 函数实现客户端断开脚本继续执行

Jun 20, 2016 pm 01:05 PM
PHP 함수

ignore_user_abort() 可以实现当客户端关闭后仍然可以执行PHP代码,可保持PHP进程一直在执行,可实现所谓的计划任务功能与持续进程,只需要开启执行脚本,除非 apache 等服务器重启或有脚本有输出,该PHP脚本将一直处于执行的状态,初看很实用,不过代价是一个PHP执行脚本的持续进程,开销很大,但却可以 实现很多意想不到的功能。

定义和用法ignore_user_abort() 函数设置与客户机断开是否会终止脚本的执行。

本函数返回 user-abort 设置的之前的值(一个布尔值)。

语法ignore_user_abort(setting)参数 描述setting 可选。如果设置为 true,则忽略与用户的断开,如果设置为 false,会导致脚本停止运行。如果未设置该参数,会返回当前的设置。注释:PHP 不会检测到用户是否已断开连接,直到尝试向客户机发送信息为止。简单地使用 echo 语句无法确保信息发送,参阅 flush() 函数。

使用示例:

(1)结合set_time_limit()函数实现一个循环脚本执行任务

<p><?php</p><p>ignore_user_abort();</p><p>set_time_limit(0);</p><p>$interval=60*15;//说明:每隔15分钟循环执行</p><p>do{</p><p>//执行的业务</p><p>}while(true);</p>
로그인 후 복사

(2)自定义实现文件输出并跟踪ignore_user_abort()函数的执行结果

<p><?php</p><p>ignore_user_abort(TRUE);</p><p>set_time_limit(0);</p><p>$interval=10;</p><p>$stop=1;</p><p>do{</p><p>    if($stop==10) break;</p><p>    file_put_contents('scutephp.com.php',' Current Time: '.time().' Stop: '.$stop);</p><p>    $stop++;</p><p>    sleep($interval);</p><p>}while(true);</p>
로그인 후 복사

打开 scutephp.com.php 文件,文件内容如下: Current Time: 1273735029 Stop: 9其原理是即使客户端终止脚本,仍然每隔10秒钟执行一次,并打印出当前时间与终止点,这样就可以测试出ignore_user_abort()函数的具体效果。

通过实例发现使用 ignore_user_abort()函数在实现计划任务,持续进程等方面的业务时候还是非常实用的。


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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 함수를 통해 이미지의 지연 로딩 효과를 최적화하는 방법은 무엇입니까? PHP 함수를 통해 이미지의 지연 로딩 효과를 최적화하는 방법은 무엇입니까? Oct 05, 2023 pm 12:13 PM

PHP 함수를 통해 이미지의 지연 로딩 효과를 최적화하는 방법은 무엇입니까?

PHP는 더 이상 사용되지 않습니다: ereg_replace() 함수는 더 이상 사용되지 않습니다 - 솔루션 PHP는 더 이상 사용되지 않습니다: ereg_replace() 함수는 더 이상 사용되지 않습니다 - 솔루션 Aug 18, 2023 am 10:48 AM

PHP는 더 이상 사용되지 않습니다: ereg_replace() 함수는 더 이상 사용되지 않습니다 - 솔루션

PHP 기능을 통해 메모리 사용량을 줄이는 방법은 무엇입니까? PHP 기능을 통해 메모리 사용량을 줄이는 방법은 무엇입니까? Oct 05, 2023 pm 01:45 PM

PHP 기능을 통해 메모리 사용량을 줄이는 방법은 무엇입니까?

PHP 함수 소개: strtr() 함수 PHP 함수 소개: strtr() 함수 Nov 03, 2023 pm 12:15 PM

PHP 함수 소개: strtr() 함수

PHP 함수와 Flutter 함수의 유사점과 차이점 PHP 함수와 Flutter 함수의 유사점과 차이점 Apr 24, 2024 pm 01:12 PM

PHP 함수와 Flutter 함수의 유사점과 차이점

PHP 함수와 다른 언어의 함수 비교 PHP 함수와 다른 언어의 함수 비교 Apr 10, 2024 am 10:03 AM

PHP 함수와 다른 언어의 함수 비교

PHP 이미지 처리 기능을 이용한 이미지 편집 및 처리 기능 구현 방법 요약 PHP 이미지 처리 기능을 이용한 이미지 편집 및 처리 기능 구현 방법 요약 Nov 20, 2023 pm 12:31 PM

PHP 이미지 처리 기능을 이용한 이미지 편집 및 처리 기능 구현 방법 요약

PHP 함수의 성능은 얼마나 되나요? PHP 함수의 성능은 얼마나 되나요? Apr 18, 2024 pm 06:45 PM

PHP 함수의 성능은 얼마나 되나요?

See all articles