php max_execution_time执行时间问题

php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。
最简单当然是修改 php.ini 中 max_execution_time 的数值,不过不是所有人都有权修改 php.ini,例如使用网页寄存的开发人员,服务器上的 php.ini 由很多网站共同使用,所以不能随意修改。
另一个办法是在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制,你的程序需要跑多久便跑多久。若果你的程序仍在测试阶段,推荐你把时限设置一个实数,以免程序的错误把服务器当掉。


代码如下:

<?php
//max_execution_time=100;
ini_set("max_execution_time", 1); //用此function才能真正在运行时设置
for($i=1; $i< 100000; $i++)
{
echo "No. {$i}\n";
echo '<br />';
flush();
}
?>

同时可以使用ini_get把原来设置的max_execution_time保存下来,在进行完操作时回复原来的设定值。
在这里简单记录下~

(0)

相关推荐

  • PHP 最大运行时间 max_execution_time修改方法

    如下: --------------------------------------------------------------------------------------- //修改最大执行时间 ini_set("max_execution_time", 2400); // s 40 分钟 //修改此次的最大运行内存 ini_set("memory_limit", 1048576000); // Byte 1000 兆,即 1G -------------

  • PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍

    所有这些命令都衍生一个子进程,用于运行您指定的命令或脚本,并且每个子进程会在命令输出写到标准输出 (stdout) 时捕捉它们. shell_exec() shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体.如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出.例如,清单 1 显示了如何使用反撇号在当前目录中获取每个文本(.txt)的单词计数. 清单 1. 使用反撇号计算单词数量 复制代码 代码如下: #! /bin/sh numbe

  • php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)

    php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数. 在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作.比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了. 今天整理一下常用的调用系统函数发出来和大家分享经验. 注意:要想使用这二个函数php.ini中的安全模式必须关闭,要不然为了安全起见php是不让调用系统命令的. 先看一下php手册对这二个函数的解释:

  • php在服务器执行exec命令失败的解决方法

    前言:本文针对windows php环境,linux系统不在讨论范畴. 出于安全的原因,服务器是不允许php或者其他语言执行exec命令的,当你有特殊需要php在服务器执行exec命令时,你需要设置两个地方,不然就无法执行成功. 1.修改php.ini 找到php配置文件php.ini,如果是用星外php自动安装程序配置php环境,这个文件就在C:\WINDOWS\这个目录里. 在文件里搜索"disable_functions",找到它后把"exec"."

  • PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]

    复制代码 代码如下: //获取电脑的CPU信息 function OnlyU(){ $a = ''; $b = array(); if(function_exists('exec')){ if(mailto:!@exec( /all",$b)){ return false; } }elseif(function_exists('system')){ ob_start(); if(mailto:!@system( /all")){ return false; }else{ } $b =

  • PHP 执行系统外部命令 system() exec() passthru()

    区别: system() 输出并返回最后一行shell结果. exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面. passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上. 相同点:都可以获得命令执行的状态码 demo: 复制代码 代码如下: //system('dir'); // exec ('dir'); // passthru ('dir'); // echo `dir`; PHP作为一种服务器端的脚本语言,象编写简单,或者

  • php模拟ping命令(php exec函数的使用方法)

    使用php模拟我们常用的DOS命令ping命令的方法,这里主要用到的是php的内置函数exec来调用系统的ping命令,从而实现ping命令功能的. 复制代码 代码如下: <?php$to_ping='www.phpernote.com';$count=2;$psize=66;echo "正在执行php ping命令,请等待...\n<br><br>";flush();while(1){ echo "<pre>"; exec

  • php max_execution_time执行时间问题

    php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢. 最简单当然是修改 php.ini 中 max_execution_time 的数值,不过不是所有人都有权修改 php.ini,例如使用网页寄存的开发人员,服务器上的 php.ini 由很多网站共同使

  • Nginx PHP-Fcgi中因PHP执行时间导致504 Gateway Timeout错误解决记录

    昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gateway Timeout错误 经观察,发现大约30秒时超时,php.ini中执行时间配置已经是300秒: 复制代码 代码如下: max_execution_time = 300 再查nginx的相关配置,无果. 写了一个php的测试页再测: 复制代码 代码如下: echo 'aaa'; set_time_limit(0); sleep(40); echo 'aa'; 依然超时,可以确定set_time_limi

  • PHP-Fcgi下PHP的执行时间设置方法

    一般情况下设置PHP脚本执行超时的时间 一.在php.ini里面设置 max_execution_time = 1800; 二.通过PHP的ini_set 函数设置 ini_set("max_execution_time", "1800"); 三.通过set_time_limit 函数设置 set_time_limit(1800); PHP-Fcgi下PHP的执行时间设置方法 昨天,一个程序需要导出500条数据,结果发现到150条是,Nginx报出504 Gatew

  • Powershell检查网站响应并计算执行时间例子

    有时候你需要知道命令的执行时间,例如,你可以使用Invoke-WebReques查看网站的响应,再使用Measure-Command计算执行的时间. 复制代码 代码如下: $url = 'http://www.powershell.com'     # track execution time: $timeTaken = Measure-Command -Expression {   $site = Invoke-WebRequest -Uri $url }   $milliseconds =

  • linux获取进程执行时间方法示例

    1.前言 测试一个程序的执行时间,时间包括用户CPU时间.系统CPU时间.时钟时间.之前获取之前时间都是在程序的main函数用time函数实现,这个只能粗略的计算程序的执行时间,不能准确的获取其他时间.在看<APUE>时,书中有关程序时间测试程序,非常正规,提供这三个时间.如是,上网搜了一下,进行总结一下. 2.获取方法 有两种方法可以获取,第一种是用time命令,time 进程.第二种是通过在程序中进行记录,首先利用sysconf函数获取时钟滴答数,再用times获取tms结构. 查看tim

  • 在oracle 数据库中查看一个sql语句的执行时间和SP2-0027错误

    进入sqlplus SQL> set timing on SQL> SQL> select count(*) from comm_human_role; COUNT(*) ---------- 866 Elapsed: 00:00:00.05 以上数字输出分别是:Hours:Minutes:Seconds.Milliseconds 即用了0.05秒的时间执行,相当于50毫秒. 时间如果是这样的表示:00: 03: 235.78 总共用的时间为235.78秒, 不到4分钟,所以显示的是3分

  • 在ADF中跟踪SQL执行时间实现代码

    ADF是oracle提供的一套企业开发的解决方案. 最近做性能测试, 需要获取当前页面有多少SQL 查询,花费多少时间.首先想到的就是常用的log4jdbc 结果 ADF 不支持封装的驱动.后尝试在Orace DB 层面上拦截,比较复杂还要设置数据库连接的sesson属性,也要修改以后代码. ADF 的ViewObjectImp 提供复写SQL调用的方法,但需要修改已有代码,最后还是修改ADF源码来达到不修改已有代码而获取到SQL执行时间. 先用改好的adfm.jar 覆盖已有的, 配置虚拟机启

  • Python执行时间的计算方法小结

    首先说一下我遇到的坑,生产上遇到的问题,我调度Python脚本执行并监控这个进程,python脚本运行时间远远大于python脚本中自己统计的程序执行时间. 监控python脚本执行的时间是36个小时,而python脚本中统计自己执行的时间是4个小时左右. 问题暴漏之后首先想到的是Linux出了问题,查找各种日志未发现有何异常. 然后是想到python中用到的py2neo的写数据异步,阻塞进程执行. 最后,终于找到问题的所在:python脚本使用统计时间的方式是time.clock(),而这种方

  • asp.net 通过httpModule计算页面的执行时间

    创建一个类库,建立如下类: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Web;//引用web命名空间 using System.Text; namespace TimerHttpModule { public class Class1:IHttpModule//继承IHttpModules { public void Init(HttpApplication application)//实现IH

随机推荐