목차
register_shutdown_function AND fastcgi_finish_request,registershutdownhook
register_shutdown_function
fastcgi_finish_request
백엔드 개발 PHP 튜토리얼 register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP教程

register_shutdown_function AND fastcgi_finish_request,registershutdownhook_PHP教程

Jul 12, 2016 am 08:59 AM
and fastcgi function request shutdown

register_shutdown_function AND fastcgi_finish_request,registershutdownhook

在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_function和fastcgi_finish_request。虽然执行的时机差不多,但是功能和应用场景不一样。比较两个方法的区别不是本文的重点。本文的重点的说明两个方法的应用场景。

register_shutdown_function

功能:

注册一个方法,当一个请求request执行完毕时,调用这个注册的方法。注意,哪怕在执行过程中发生error导致本次请求被强制退出,注册的方法也会执行。

应用场景一:

可以利用他的特性,捕获一些错误的一些详细信息。示例代码如下:

<span>function</span><span> catch_error(){
</span><span>$error</span> =<span> error_get_last();
</span><span>if</span>(<span>$error</span><span>){
</span><span>var_dump</span>(<span>$error</span><span>);
}
}
</span><span>register_shutdown_function</span>("catch_error"<span>);
</span><span>ini_set</span>('memory_limit','1M'<span>);
</span><span>$content</span> = <span>str_repeat</span>("aaaaaaaaaaaaaaaaaaaaaaa",100000<span>);
</span><span>echo</span> "aa";
로그인 후 복사

输出信息大概如下:

<p>array(4) { ["type"]=> int(1) ["message"]=> string(80) "Allowed memory size of 1048576 bytes exhausted (tried to allocate 2300001 bytes)" ["file"]=> string(39) "/test.php" ["line"]=> int(13) }</p>
로그인 후 복사

可见,上面的代码正常的捕捉了内存不足的错误。

应用场景二
检查请求是否正常关闭。示例代码如下:

<span>function</span><span> monitor(){
</span><span>global</span> <span>$is_end</span><span>;
</span><span>if</span>(<span>$is_end</span> == <span>true</span><span>){
</span><span>echo</span> "success"<span>;
}</span><span>else</span><span>{
</span><span>echo</span> "fail"<span>;
}
}
</span><span>register_shutdown_function</span>("monitor"<span>);
</span><span>$is_end</span> = <span>false</span><span>;
</span><span>die</span><span>();
</span><span>$is_end</span> = <span>true</span>;
로그인 후 복사

页面输出结果为:fail

可见,即便是调用了die函数。注册的monitor函数也正常执行了。

fastcgi_finish_request

功能:
flush数据到客户端。调用这个方法后,再有任何输出内容,都不会输出到客户端。

应用场景:

如果一个请求的处理内容中,有一部分是不需要发送到客户端时,就可以先生成输出到客户端的内容,然后调用此方法。方法被调用后,内容就会输出到客户端。而不需要输出到客户端的内容,可以放在此方法后。这样可以提高响应速度。示例代码如下:

<span>echo</span> "a"<span>;
fastcgi_finish_request();
</span><span>echo</span> "b"<span>;
</span><span>file_put_contents</span>("/tmp/test","abc.com"<span>);
</span><span>die</span><span>();
</span><span>file_put_contents</span>("/tmp/test2","测试数据");
로그인 후 복사

页面输出结果为:a
可见,fastcgi_finish_request方法后的echo “b” 并没有输出到客户端。但是你会发现在/tmp/test目录下正常的创建了文件。但是/tmp/bo56文件没创建

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1097792.htmlTechArticleregister_shutdown_function AND fastcgi_finish_request,registershutdownhook 在php中又两个方法都是在请求快结束的时候执行。方法名分别是 register_shutdown_...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Linux 종료 명령을 즉시 종료할 수 있습니까? Linux 종료 명령을 즉시 종료할 수 있습니까? Jan 28, 2023 pm 05:26 PM

Linux 종료 명령 shutdown은 컴퓨터를 즉시 종료할 수 있습니다. 루트 사용자는 "shutdown -h now" 명령만 실행하면 됩니다. shutdown 명령은 종료 프로세스를 수행하고 종료하기 전에 사용자가 실행 중인 모든 프로그램에 메시지를 보내는 데 사용할 수 있습니다. shutdown 명령을 사용하려면 시스템 관리자 루트 사용자가 필요합니다.

기능은 무슨 뜻인가요? 기능은 무슨 뜻인가요? Aug 04, 2023 am 10:33 AM

함수는 특정 기능을 포함하는 재사용 가능한 코드 블록으로, 입력 매개변수를 받아들이고 특정 작업을 수행하며 결과를 반환하는 것이 목적입니다. 코드 재사용성과 유지 관리성을 향상시키는 코드입니다.

Windows 10/11에서 자동 종료를 설정하는 3가지 방법 Windows 10/11에서 자동 종료를 설정하는 3가지 방법 May 01, 2023 pm 10:40 PM

바쁜 세상에서 우리는 정기적으로 또는 적시에 실행하고 싶은 일을 자동화하고 싶습니다. 자동화는 작업을 제어하고 작업 수행에 드는 노력을 줄이는 데 도움이 됩니다. 이러한 작업 중 하나는 컴퓨터를 종료하는 것일 수 있습니다. 컴퓨터가 정기적으로 종료되도록 할 수도 있고, 하루 중 특정 시간이나 특정 요일에 종료하도록 할 수도 있고, 한꺼번에 종료하도록 할 수도 있습니다. 시스템이 자동으로 종료되도록 타이머를 설정하는 방법을 살펴보겠습니다. 방법 1: 실행 대화 상자 사용 1단계: Win+R을 누르고 shutdown-s-t600을 입력한 후 확인을 클릭합니다. 참고: 위 명령에서 600은 시간(초)을 나타냅니다. 필요에 따라 변경할 수 있습니다. 분이나 시간이 아니라 항상 초 단위여야 합니다.

PHP 요청은 무엇을 의미합니까? PHP 요청은 무엇을 의미합니까? Jul 07, 2021 pm 01:49 PM

요청의 중국어 의미는 "요청"입니다. PHP의 전역 변수이며 "$_POST", "$_GET" 및 "$_COOKIE"를 포함하는 배열입니다. "$_REQUEST" 변수는 POST 또는 GET으로 제출된 데이터 및 COOKIE 정보를 얻을 수 있습니다.

Linux에서 예약된 종료 명령을 설정하는 방법 Linux에서 예약된 종료 명령을 설정하는 방법 Feb 18, 2024 pm 11:55 PM

리눅스 예약 종료 명령이란 무엇입니까? 리눅스 시스템을 사용하다 보면, 많은 양의 파일을 다운로드한 후 자동으로 종료하거나 더 이상 사용하지 않을 때 서버를 자동으로 종료하는 등 종료를 예약해야 하는 경우가 많습니다. Linux 시스템에서는 "shutdown" 명령을 사용하여 예약된 종료를 구현할 수 있습니다. "shutdown" 명령을 사용하면 사용자는 시스템을 종료하거나 다시 시작하고 지연 시간을 설정할 수 있습니다. 명령에 매개변수를 추가하면 예약된 종료 기능을 구현할 수 있습니다. 명령의 기본 형식은 다음과 같습니다.

MySQL이 예기치 않게 종료됨 - MySQL 오류 해결 방법: MySQL이 예기치 않게 종료되었습니다. MySQL이 예기치 않게 종료됨 - MySQL 오류 해결 방법: MySQL이 예기치 않게 종료되었습니다. Oct 05, 2023 pm 02:42 PM

MySQL은 다양한 웹사이트와 애플리케이션에서 널리 사용되는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 그러나 MySQL을 사용하는 동안 다양한 문제에 직면할 수 있으며, 그 중 하나는 MySQL이 예기치 않게 종료되는 것입니다. 이 기사에서는 MySQL 오류 문제를 해결하는 방법에 대해 논의하고 몇 가지 구체적인 코드 예제를 제공합니다. MySQL이 예기치 않게 종료되면 먼저 MySQL 오류 로그를 확인하여 종료 이유를 파악해야 합니다. 일반적으로 MySQL 오류 로그는 MySQL 설치 디렉터리에 있습니다.

PHP의 요청 객체란 무엇입니까? PHP의 요청 객체란 무엇입니까? Feb 27, 2024 pm 09:06 PM

PHP의 요청 객체는 클라이언트가 서버로 보낸 HTTP 요청을 처리하는 데 사용되는 객체입니다. Request 객체를 통해 요청 메소드, 요청 헤더 정보, 요청 매개변수 등과 같은 클라이언트의 요청 정보를 얻어 요청을 처리하고 응답할 수 있습니다. PHP에서는 $_REQUEST, $_GET, $_POST 등과 같은 전역 변수를 사용하여 요청된 정보를 얻을 수 있지만 이러한 변수는 객체가 아니라 배열입니다. 요청사항을 보다 유연하고 편리하게 처리하기 위해

Python 3.x에서 urllib.request.urlopen() 함수를 사용하여 GET 요청을 보내는 방법 Python 3.x에서 urllib.request.urlopen() 함수를 사용하여 GET 요청을 보내는 방법 Jul 30, 2023 am 11:28 AM

Python3.x에서 urllib.request.urlopen() 함수를 사용하여 GET 요청을 보내는 방법 네트워크 프로그래밍에서는 HTTP 요청을 보내 원격 서버에서 데이터를 가져와야 하는 경우가 많습니다. Python에서는 urllib 모듈의 urllib.request.urlopen() 함수를 사용하여 HTTP 요청을 보내고 서버에서 반환된 응답을 얻을 수 있습니다. 이 기사에서는 사용 방법을 소개합니다.

See all articles