[英]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.