设置PHP脚本执行超时时间的方法

设置PHP脚本执行超时的时间有下面这样一些方法:
php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。
一、在php.ini里面设置 max_execution_time = 1800;
二、通过PHP的ini_set 函数设置 ini_set("max_execution_time", "1800");
三、通过set_time_limit 函数设置 set_time_limit(1800) ;

IIS中的Asp脚本超时设置,是否对php脚本有效,有待研究验证??

IIS默认一个页面脚本运行的超时时间是90秒,超过90秒程序没有运行完,则弹出这个错误。上传文件比较大,而网速又比较慢时就会超时,就是你现在的情况。可以在asp页内写程序“Server.ScriptTimeOut = 时间”,来设施脚本超时时间。也可以在IIS上的 该站点/属性/主目录/配置/选项/asp脚本超时: 来设置该站点的脚本超时时间。设置过大的话,可能会过分占用资源,不能及时释放资源。导致所有页面打不开,网站最终崩溃。

===========================================

asp脚本的运行时间设置:

脚本运行时间的最长限制默认值为90秒,这是防止无限次循环的进行,是很有用的防护措施。
  不过,在一些特殊场合中,你也许面临着脚本运行时间大于90秒的场合,例如,当你的脚本生成了一个十分巨大的主页时,你肯定不希望主页显示到一半时间就过了限制时间。那么你可以利用Server对象的ScriptTimeout属性来自己设定你希望的限制时间。例如下例:
<% Server.ScriptTimeOut=150 %>
<HTML>
<Head><title>落星</title></head>
<body>
<%
randomize
starx=60
for k=1 to 10
nextsecond=dateadd(“s”,10,time)
do while time<nextsecond
loop
Starx=starx 3*rnd()-1
for i=1 to starx
Response.Write(“&ndsp;”)
Next
Response.Write(“*<p>”)
Next
%>
</body>
</html>
  这个脚本将会十分缓慢的显示落星,每隔10秒在相应位置显示一个星号。
  由于在页首限定了150秒的限制时间,这个脚本才可能正常执行结束。
  你自然也可以利用Server.ScriptTimeout属性来将限制时间减少到90秒以内,而且你还可以在Internet Service Manager中的Application Configuation对话框中的App Options页中修改ScriptTimeout属性,如果你将其改为-1,那么你的脚本将永远不会过期。
  允许脚本执行很长时间就会在你网站资源上创建一个非常重要的管道,实际上,一个脚本也许会执行到甚至发出执行请求的用户都已经离开的时候,这种情况下,这种脚本的继续执行对任何人都没有好处。幸运的是,Response对象的属性可以有所助益,IsClientConnected属性可以检查浏览器和服务端是否仍然在连接。你可以利用这个属性将用户已经离开情况下的脚本停止执行。例如,下面这个例子会一直显示到连接终止。
<HTML>
<HEAD><TITLE>Obnoxious Page</title></head>
<body>
<%
while 1=1
Response.Write(“Hello! Magicw3 Com.”)
if NOT Response.IsClientConnected THEN Response.End
WEND
%>
</body>
</HTML>
  请注意IsClientConnected属性仅仅在上一个Response.write调用时浏览器仍然处于连接状态才有效。如果你运行了一个运行时间很长的脚本程序而没有输出任何东西,那么这个属性也就不会产生作用。



上一篇: 怎么用PHP把unicode转成utf8
下一篇: PHP中刷新输出缓冲
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: php
相关日志:
评论: 0 | 引用: 0 | 查看次数: 5299
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑