登录  /  注册

PHP执行超时30秒报错如何解决

小云云
发布: 2018-03-13 14:08:51
原创
13927人浏览过
推荐手册php完全自学手册

当你在做一个抓取程序的时候,php空白了好长一段时间然后报出现如下这个错误提示:

Fatal error: Maximum execution time of 30 seconds exceeded in ......
登录后复制

很简单,意思是说脚本执行时间超过了30秒的上限。

这个错误以前经常碰到,一般都是直接在页面头部加个 set_time_limit(0) 处理,今天特意将这个错误的处理方法做一下总结。

经过查阅相关资料,对于PHP入门教程的学者们处理这个错误的方法基本上有三种。

(1)修改php的配置文件 php.ini 文件(这个文件默认安装的话,在/etc/下面)

找到 php.ini 这个文件,然后在这个文件中找到:

max_execution_time = 30 ;这一行,将数字 30 设置成你想要的值,单位是秒。

(也可以直接修改为:max_execution_time=0;//无限制)注意这样修改完后需要重启一下服务器。

例如你的是Apache,用service httpd restart

(2)使用 ini_set() 函数

对于那些不能够修改 php.ini 的朋友来说,你可以使用ini_set()这个函数来改变你的最大执行时间限制值,在程序的顶部加入如下代码:

ini_set('max_execution_time','100');
登录后复制

以上设置的为100秒,你也可以设置为0,那么就是不限制执行的时间。

(3)使用set_time_limit() 函数

在程序的顶部加入:set_time_limit(100);则表示最大执行时间设置为了100秒,当然也可以将参数设置为0,意思同上。

set_time_limit 函数特别说明:void set_time_limit ( int $seconds ) 该函数的作用是设置允许脚本运行的时间,单位为秒。

如果超过了此设置,脚本返回一个致命的错误。

默认值为30秒,或者是在php.ini的max_execution_time被定义的值,如果此值存在。当此函数被调用时, set_time_limit()会从零开始重新启动超时计数器。

换句话说,如果超时默认是30秒,在脚本运行了了25秒时调用 set_time_limit(20),那么,脚本在超时之前可运行总时间为45秒。当php运行于安全模式下时,此功能不能生效。

除了关闭安全模式(在 php.ini 中将 safe_mode 设置为 off)或改变 php.ini 中的时间限制,没有别的办法。

案例:

如果没有打开安全模式,设置程序运行时间为25秒。

例如:

if(!ini_get('safe_mode')){
    set_time_limit(25);
}
登录后复制
相关文章推荐
1.让php超时的办法是什么 
2.php请求接口超时如何解决
相关视频推荐
1.独孤九贱(4)_PHP视频教程

相关推荐:

PHP执行外部程序实现方法        
详解PHP执行外部程序的实现代码          
提高php执行效率的50个技巧

以上就是PHP执行超时30秒报错如何解决的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号