php.ini中最大执行时间的最大允许值是多少

php.ini中最大执行时间的最大允许值是多少,php,Php,我尝试使用 ini_set('max_execution_time', 108000); 等于30小时。我只是利用这个值来抓取包含大量数据的网站。但是,我犯了一个致命错误,即最大执行时间不能超过30秒。当我将108000值更改为300时,我的脚本执行了5分钟。我想知道php中允许的最大值是多少?参考Mjh的评论,回答正确。 用于分析整数ini值的签名: ZEND_API long zend_ini_long(char *name, uint name_length, int orig); 因

我尝试使用

ini_set('max_execution_time', 108000);

等于30小时。我只是利用这个值来抓取包含大量数据的网站。但是,我犯了一个致命错误,即最大执行时间不能超过30秒。当我将108000值更改为300时,我的脚本执行了5分钟。我想知道php中允许的最大值是多少?

参考Mjh的评论,回答正确。

用于分析整数ini值的签名:

ZEND_API long zend_ini_long(char *name, uint name_length, int orig);
因此,可输入该字段的最大值为:2147483647

旧答案。

我能找到的唯一线索是:

这最终导致:

这是一个64位整数,或:

−9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
编辑:更正

// PHP x64
typedef int64_t zend_long;

// PHP x86
typedef int32_t zend_long;
因此,最大值是
PHP\u INT\u max


如果您收到的错误是不能超过30秒,这是因为您的服务器配置禁止将该值更改为30秒以上的值。

请参考Mjh的评论更正答案。

用于分析整数ini值的签名:

ZEND_API long zend_ini_long(char *name, uint name_length, int orig);
因此,可输入该字段的最大值为:2147483647

旧答案。

我能找到的唯一线索是:

这最终导致:

这是一个64位整数,或:

−9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
编辑:更正

// PHP x64
typedef int64_t zend_long;

// PHP x86
typedef int32_t zend_long;
因此,最大值是
PHP\u INT\u max

如果您收到的错误是不能超过30秒,这是因为您的服务器配置禁止将该值更改为超过30秒的值。

引用手册

最长执行时间,以秒为单位。如果设置为零,则不施加时间限制

它可能是无限的,所以对于php来说,限制可能只是最大的int

但是可能有外部因素,如果我没记错的话,suhosin补丁有自己的最大执行时间,如果从web服务器执行,可能服务器本身有一些限制,看看我的印象,网络超时也可能是一个因素。

引用手册

最长执行时间,以秒为单位。如果设置为零,则不施加时间限制

它可能是无限的,所以对于php来说,限制可能只是最大的int



但是可能有外部因素,如果我没记错的话,suhosin补丁有自己的最大执行时间,如果从web服务器执行,可能服务器本身有一些限制,看看我的印象,网络超时也可能是一个因素。

我建议您通过CLI使用php。它不受
max\u execution\u time
的影响,将一直工作到完成。我不想执行一些脚本。只是想知道允许的最大值。我浏览了文档,但他们没有在那里说明。0应该完全取消时间限制,并让脚本永远运行(如果它愿意的话)。这就是你想要的答案吗?可能是重复的不,不是重复的。他在询问最长执行时间的最大值。我建议您通过CLI使用php。它不受
max\u execution\u time
的影响,将一直工作到完成。我不想执行一些脚本。只是想知道允许的最大值。我浏览了文档,但他们没有在那里说明。0应该完全取消时间限制,并让脚本永远运行(如果它愿意的话)。这就是你想要的答案吗?可能是重复的不,不是重复的。他要求最大执行时间的最大值。因为我和你做了同样的事情,我偶然发现了
INI\u INT
宏,它是一个包装器,用于调用,返回长整数。在评论中扔掉这堵墙后,让我向上投票,如果我在代码中的爬行是正确的,那么你的答案是正确的:)@Mjh这是否意味着它只返回一个
long
,因为它不对64位系统使用
strtoll
?它似乎总是返回
long
,除非我在浏览时遗漏了一些明显的东西,否则我的答案只有一半正确。如果你发布了正确的答案,你可以从我这里得到一个:我相信你可以编辑你的答案,并包含我评论中的内容,我认为最好不要发布太多“正确”的答案:)因为我和你做了同样的事情,我偶然发现了
INI\u INT
宏,它是一个用于调用的包装器,返回长整数。在评论中扔掉这堵墙后,让我向上投票,如果我在代码中的爬行是正确的,那么你的答案是正确的:)@Mjh这是否意味着它只返回一个
long
,因为它不对64位系统使用
strtoll
?它似乎总是返回
long
,除非我在浏览时遗漏了一些明显的东西,否则我的答案只有一半正确。如果你发布了正确的答案,你可以从我这里得到一个答案:我相信你可以编辑你的答案,包括我评论中的内容,我认为最好不要发布太多“正确”的答案:)+1来提及外部因素。apache有一个timeout指令,iis有一个timeout函数,这两个函数都可以预先设置
max\u execution\u time
+1以提及外部因素。apache有一个timeout指令,iis有一个timeout函数,两者都可以预先设置
max\u execution\u time