问题 ini_set,set_time_limit,(max_execution_time) - 无法正常工作


如果我做 set_time_limit(50) 要么 ini_set('max_execution_time',50)然后当我回声 ini_get('max_execution_time') 在我的本地主机上我得到了 50,但是当我在另一台服务器上执行此操作时,它会回显默认设置 30 并完全无视我的要求。为什么是这样?


6536
2017-10-19 18:57


起源



答案:


您无法使用更改此设置   在安全模式下运行时的ini_set()。   唯一的解决方法是关闭   安全模式或改变时间   在php.ini中限制。

- PHP手册,运行时配置, 的描述 max_execution_time

许多主机以安全模式运行。另一台服务器很可能就是其中之一。

编辑:相同的限制已经到位 set_time_limit

这个函数在PHP时没有效果   正在以安全模式运行。没有   除了关闭安全之外的解决方法   模式或更改时间限制   php.ini中。

- PHP手册, set_time_limit 页


12
2017-10-19 19:34



我会给你答案检查,但我在刷新页面之前就弄明白了!唉唉!但是,脚本不会在30秒内出错吗?为什么它告诉我“与服务器的连接已重置”任何想法? - Mickey
猜测,PHP只是关闭连接而没有完成,因此与服务器的连接已被重置消息。出于好奇,你在做什么操作需要超过30秒?除非你在使用XML或慢速数据库做大量工作,否则必须有一些减少处理时间的方法。 - Powerlord
我必须通过RETS(rets.org)规范连接到多个MLS提供商以获取列表数据。每个列表大约1k,大约5-12个原始图像?k。我将数据插入MySQL然后转到下一个(循环中)。然后它必须对每个列表进行地理编码以及其他一些非常有意义的感觉。 - Mickey


答案:


您无法使用更改此设置   在安全模式下运行时的ini_set()。   唯一的解决方法是关闭   安全模式或改变时间   在php.ini中限制。

- PHP手册,运行时配置, 的描述 max_execution_time

许多主机以安全模式运行。另一台服务器很可能就是其中之一。

编辑:相同的限制已经到位 set_time_limit

这个函数在PHP时没有效果   正在以安全模式运行。没有   除了关闭安全之外的解决方法   模式或更改时间限制   php.ini中。

- PHP手册, set_time_limit 页


12
2017-10-19 19:34



我会给你答案检查,但我在刷新页面之前就弄明白了!唉唉!但是,脚本不会在30秒内出错吗?为什么它告诉我“与服务器的连接已重置”任何想法? - Mickey
猜测,PHP只是关闭连接而没有完成,因此与服务器的连接已被重置消息。出于好奇,你在做什么操作需要超过30秒?除非你在使用XML或慢速数据库做大量工作,否则必须有一些减少处理时间的方法。 - Powerlord
我必须通过RETS(rets.org)规范连接到多个MLS提供商以获取列表数据。每个列表大约1k,大约5-12个原始图像?k。我将数据插入MySQL然后转到下一个(循环中)。然后它必须对每个列表进行地理编码以及其他一些非常有意义的感觉。 - Mickey


GoDaddy是否允许您编辑其远程PHP.INI文件,或者(实现相同的功能)在运行时设置这些选项?许多限制性主机(我不知道GoDaddy的这种或那种方式)不会让你通过配置文件或在运行时使用PHP选项,就像你在WAMP上做的那样。可能是因为你仍然在调用该函数,但它没有被应用。

使用

echo 'Time Limit = ' . ini_get('max_execution_time') .

手册说如果在PHP.INI中设置了它,那将覆盖这个运行时。 关于set_time_limit的PHP手册


1
2017-10-19 19:06



运行其他东西,更短/更容易对付它并检查响应。 - markus
我不得不重新编辑我的问题,感谢你的帮助。 - Mickey


您可以更改max_execution_time。
上传1行(max_execution_time = 600) php5.ini 到你的根文件夹(php.ini所在的位置)。


1
2017-10-14 23:54