如果PHP脚本达到MAX允许高管时,是当前指令完成后立即或右终止?(if PHP script re

2019-10-30 02:02发布

我接近最大执行时间我的服务器上,我不能去改变它。 该脚本下载数据并将其写入文件。 潜在的问题是,该脚本可以将文件写入磁盘时达到最大执行时间。 因此,这是我必须知道,如果一个脚本的最大到达后终止的时间让高管。 立即,并可能导致存储在磁盘上的文件不完整或脚本被终止之后最后一个指令/函数结束,所以我可以肯定,在磁盘上的所有文件都有效吗?

第二个问题,以该主题:
如果脚本会后的fwrite()函数来终止而没有执行FCLOSE会发生什么() - 它可能会导致在创建磁盘不完整(无效)的文件?

第三个问题
如果脚本没有立即终止则其当前指令结束后或终止调用一个函数? 因为如果脚本被终止当前指令之后然后执行的fwrite()不能达到该功能的端部和函数体内某处停止。

Answer 1:

最大的执行时间不受系统调用,流操作等。

你的Web服务器可以有其他的超时配置,也可能中断PHP执行。 阿帕奇有超时指令和IIS有一个CGI超时功能。 这两个默认为300秒。 详情请见Web服务器文档。

看看PHP手册:运行时配置 ,从我的结论是fwrite的通话将正常执行到结束。 该服务器(例如Apache)的也可以强制脚本停止。 在这种情况下FWRITE可能会所中断。 但是,因为它是300的默认你propably不要碰到那超时。



Answer 2:

它被立即终止。

你的回答第二个问题:没有,FCLOSE()是没有必要的。



文章来源: if PHP script reaches max allowed exec time, is it terminated immediately or right after current instruction finishes?