若PHP脚本达到允许的最大执行时间,它是立即终止还是在当前指令完成后立即终止?
我已接近服务器上的最大执行时间,不允许更改它。脚本下载数据并将其写入文件。潜在的问题是,在将文件写入磁盘期间,脚本可以达到最大执行时间。因此,我必须知道脚本是否在达到exec允许的最大时间后终止。立即,可能导致存储在磁盘上的文件不完整,或者脚本在最后一条指令/函数结束后立即终止,因此我可以确保磁盘上的所有文件都有效?若PHP脚本达到允许的最大执行时间,它是立即终止还是在当前指令完成后立即终止?,php,time,execution,terminate,Php,Time,Execution,Terminate,我已接近服务器上的最大执行时间,不允许更改它。脚本下载数据并将其写入文件。潜在的问题是,在将文件写入磁盘期间,脚本可以达到最大执行时间。因此,我必须知道脚本是否在达到exec允许的最大时间后终止。立即,可能导致存储在磁盘上的文件不完整,或者脚本在最后一条指令/函数结束后立即终止,因此我可以确保磁盘上的所有文件都有效? 该主题的第二个问题: 如果在fwrite()函数之后终止脚本而不执行fclose(),会发生什么情况?这会导致在磁盘上创建不完整(无效)的文件吗? 第三个问题 若脚本并没有立即
该主题的第二个问题:
如果在fwrite()函数之后终止脚本而不执行fclose(),会发生什么情况?这会导致在磁盘上创建不完整(无效)的文件吗?
第三个问题
若脚本并没有立即终止,那个么它是在当前指令结束或调用函数后终止的吗?因为如果脚本在当前指令之后终止,那么执行fwrite()无法到达该函数的结尾并在函数体中的某个位置停止。它会立即终止 您对第二个问题的回答:不,fclose()不是必需的 最大执行时间不受系统调用、流的影响 操作等 您的web服务器可以具有其他超时配置,这些配置也可能 中断PHP执行。Apache有一个超时指令,IIS有一个 CGI超时功能。两者都默认为300秒。查看您的web服务器 有关具体细节的文档 看 由此我得出结论,fwrite调用将正确执行到底。服务器(例如apache)也可以强制脚本停止。在这种情况下,fwrite可能会被中断。但由于默认值为300,您可能不会遇到该超时