簡體   English   中英

php.ini中max_execution_time的最大允許值是多少

[英]What is the maximum allowed value of max_execution_time in php.ini

我嘗試在 php 中使用增加 max_execution_time 的值

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

舊答案。

我能找到的唯一線索在這里: https : //github.com/php/php-src/blob/master/main/php_ini.h

#define php_ini_long    zend_ini_long

最終回到: https : //github.com/php/php-src/blob/master/Zend/zend_long.h

typedef int64_t zend_long;

那是一個 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_INT_MAX

如果您收到錯誤說它不能超過 30 秒,這是因為您的服務器配置禁止將該值更改為超過 30 秒的任何值。

引用手冊set_time_limit

最大執行時間,以秒為單位。 如果設置為零,則沒有時間限制。

它可能是無限的,所以對於 php 來說,限制只是最大的int值。

但是可能有外部因素, 如果我沒記錯的話 如果 從 Web 服務器 執行 suhosin補丁有自己的最大執行時間 也許服務器本身有一些限制,查看php 源我的印象也是網絡超時可能是一個因素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM