php页面最大执行时间 set_time_limit函数不起作用

php页面最大执行时间 set_time_limit函数不起作用

 
作者: default|标签:
PHP
set_time_limit
执行时间|2017-3-21 15:03

 
set_time_limit 不生效或者无效解决方法
<?php
global $begin;
global $end;
$begin = microtime(TRUE);
try {
$dsn = "mysql:host=localhost;dbname=kaixin";
$db = new PDO($dsn, 'root', '111');
$db->exec("set names 'utf8'");//默认编码
$db->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
for($i=1; $i<5000; $i++){
$sql = "insert into `article` (`title`, `content`, `time`, `author`, `ip`) value ('文章标题".$i."', '内容".$i."',
'1227237892','kaixin','127.0.0.1')";
$db->exec($sql);
}
$end = microtime(TRUE);
// by bbs.it-home.org
$time = $end-$begin;
echo "执行了".$time."s";
} catch (Exception $e) {
echo "Failed: " . $e->getMessage();
}
?>

 

 

执行这段代码,只能插入大概1000条左右的数据,这样页面就不执行了。 测试页面的执行时间大概都是29秒左右,也就是页面的最大执行时间 是30秒。

知道set_time_limit函数,可以设置页面执行时间。

set_time_limit函数用法如下:

本函式用来设定该页最久执行时间。内定值是 30 秒,在 php.ini 中的 max_execution_time 变数设定,若设定为 0 则不限定最久时间。当执行到该函数时,才开

始计算。例如,若内定是 30 秒,而在执行到该函数前已执行了 25 秒,而用本函式改为 20 秒,则该页面最长执行时间为 45 秒。

把这个set_time_limit函数加到了程序里,

发现页面执行时间还是29秒左右,没有起作用。

看到网上有人说,php.ini里的safe_mode如果为on,本函数不执行。查了我的php.in里的safe_mode=off。

试着把set_time_limit(0);加入到for循环里。

<?php
...
for($i=1; $i<5000; $i++){
set_time_limit(0);
$sql = "insert into `article` (`title`, `content`, `time`, `author`, `ip`) value ('文章标题".$i."', '内容".$i."',
<?php
set_time_limit(0);
global $begin;
global $end;
$begin = microtime(TRUE);
...
?>
'1227237892','kaixin','127.0.0.1')";
$db->exec($sql);
}
...
?>

 

 

也没有起作用。最后在网上查到,有人说,“set_time_limit函数最好是在linux下执行,windows执行可能也无效”。彻底对这个函数失去信心 了,估计是因为我是windows系统的原因。

只能修改php.ini里的max_execution_time = 30了。这个默认是30秒,我修改为max_execution_time = 300.重新启动apache服务器。 结果执行时间为140秒左右,5000条数据终于插入了。 看来,windows下这个页面执行时间还是在php.ini里控制,修改max_execution_time。 如果用PDO往MYSQL里面插入数据的话。插入五千条大概140多秒时间,插入1万条大概260多秒时间。

以上就是php页面最大执行时间 set_time_limit函数不起作用 的内容,更多相关内容请关注PHP中文网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113439.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jmeter的正则表达式提取器_正则表达式详解

    jmeter的正则表达式提取器_正则表达式详解JMeter关联的实现1、关联的释义与简单示例2、常用正则表达式详解3、正则表达式提取器2、JSON值提取前言:下文中会多次使用到【BeanShellSampler】和【DebugSampler】,前者的作用是模拟一个请求,返回自定义的响应结果,后者能够输出JMeter的变量情况。1、关联的释义与简单示例接口测试中的所谓关联,就是将服务器返回结果中的一个值(这个值在接口响应前并不预知)提…

    2022年9月11日
  • android传感器开发与智能设备案例实战_传感器的选择

    android传感器开发与智能设备案例实战_传感器的选择对于android应用开发来说,开发传感器应用十分简单,开发者只要为指定监听器注册

    2022年9月29日
  • 怎么进行大数据测试?我们需要具备怎样的测试能力?「建议收藏」

    怎么进行大数据测试?我们需要具备怎样的测试能力?「建议收藏」前言:现在大数据这么火,那么作为测试人员,我们应该怎么进行大数据测试?需要具备怎样的测试能力?一、大数据测试实现被分成三个步骤(1):数据阶段验证大数据测试的第一步,也称作pre-hadoop阶段该过程包括如下验证:1、来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统2、将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配3、验证正确的数据被提取并被加载到HDFS正确的位置该阶段可以使用工具Talend或Datameer,进行数据阶段验证。(2):”MapReduc

    2022年6月4日
  • H3C交换机常用命令汇总

    H3C交换机常用命令汇总H3C交换机常用命令1.查看Linux下查看端口状态 root@root:~# netstat -an|grep -E “6002|6003″2.H3C交换机显示当前配置 [H3C]display current-configuration3.H3C交换机显示arp信息 [H3C]dis arp4.H3C交换机显示mac列表信息 [H3C]dis mac-address5.H3C交换机显示端口信息

    2022年6月20日
  • javaScript学习笔记(一)js基础

    javaScript学习笔记(一)js基础=================================公众号关注一波(一叶知秋博客)不定期分享视频资料一、简介1、概述:JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。诞生于1995年,当时的主要目的是验证表单的数据是否合法。Java…

    2022年7月25日
  • clion 激活_最新在线免费激活

    (clion 激活)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0BXA05X8YC-eyJsaWNlbnNlSWQi…

    2022年3月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号