set_time_limit()超时

时间:2010-02-05 03:56:00

标签: php

我有一个上传表单,可以将mp3上传到我的网站。我和一些用户有一些间歇性的问题,我怀疑它们的上传连接速度很慢......

但是无论如何第一行代码是set_time_limit(0);,它确实修复了那些有连接需要一段时间才能上传的用户,但是有些用户仍在计时,我不知道为什么。

它表示脚本已超过60秒的限制执行。该脚本没有循环,所以它不像是某种无限循环。

奇怪的是,无论第一行中的代码行是什么,它总是会说“第一行,第二行等的错误”,即使它是set_time_limit(0);。我试图删除它,第一行代码似乎总是错误,它甚至没有给我一个为什么它不能执行php页面的提示。

这是一个只有少数用户遇到的问题,似乎没有其他人受到影响。有谁可以提出一些想法,为什么会发生这种情况?

3 个答案:

答案 0 :(得分:6)

set_time_limt()只会影响页面上PHP代码的实际执行。您想要设置PHP指令max_input_time,它指示脚本接受输入(如文件)的时间长度。问题是您需要在php.ini中设置它,就像超出默认的max_input_time一样,它永远不会到达试图用ini_set()更改它的脚本。

答案 1 :(得分:1)

当然,PHP手册中提到了一些事项。

确保PHP未在安全模式下运行。当PHP在safe_mode中运行时,set_time_limit没有任何影响。

第二,这就是我认为你的问题所在...... 注意:set_time_limit()函数和配置指令max_execution_time仅影响脚本本身的执行时间。在确定脚本运行的最长时间时,不会包括在执行脚本之外发生的任何活动,例如使用system()的系统调用,流操作,数据库查询等。在测量时间真实的Windows上,情况并非如此。

所以你的流可能是罪魁祸首。

您是否可以发布一些上传脚本,是否使用标题调用单独的文件来处理上传?

答案 2 :(得分:0)

请尝试ini_set('max_execution_time', 0);