0

我接近服务器上的最大执行时间,我不允许更改它。该脚本下载数据并将其写入文件。潜在的问题是脚本在将文件写入磁盘期间可能会达到最大执行时间。因此,我必须知道在达到 exec 的最大允许时间后是否终止脚本。是立即的并且可能导致存储在磁盘上的文件不完整,或者脚本在最后一条指令/函数结束后立即终止,所以我可以确定磁盘上的所有文件都是有效的?

该主题的第二个问题:
如果脚本将在 fwrite() 函数之后终止而不执行 fclose() 会发生什么 - 它会导致在磁盘上创建不完整(无效)的文件吗?

第三个问题
如果脚本没有立即终止,那么它是在当前指令结束后终止还是调用函数?因为如果脚本在当前指令之后终止,则执行 fwrite() 无法到达该函数的末尾并在函数体内的某个位置停止。

4

2 回答 2

0

它立即终止。

您对第二个问题的回答:不,不需要 fclose()。

于 2013-06-30T15:12:17.337 回答
0

最大执行时间不受系统调用、流操作等影响。

您的 Web 服务器可以有其他可能会中断 PHP 执行的超时配置。Apache 有一个 Timeout 指令,而 IIS 有一个 CGI 超时功能。两者都默认为 300 秒。有关特定详细信息,请参阅您的 Web 服务器文档。

请参阅PHP 手册:运行时配置 从中我得出结论,fwrite 调用将正确执行到最后。服务器(例如 apache)也可以强制脚本停止。在这种情况下 fwrite 可能会被中断。但由于默认值为 300,因此您可能不会遇到该超时。

于 2013-06-30T15:29:56.430 回答