Heim  >  Artikel  >  Backend-Entwicklung  >  PHP脚本执行超时的解决办法_PHP教程

PHP脚本执行超时的解决办法_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:57:15892Durchsuche

在php中默认脚本执行超时时间为30秒了,如果你未进行设置30秒之后如果你的脚本还未执行完就会超时了,下面我来给大详解解决PHP脚本执行超时的方法。

php.ini 中缺省的最长执行时间是 30 秒,虽然可以通过调整 php.ini 中 max_execution_time的值来达到目的,但有些情况是没有条件修改php.ini的,如何解决这个问题呢。

一种方法是在 PHP 脚本中加入

 代码如下 复制代码

ini_set('max_execution_time', '0');

将运行时间设置成0(无限值);

另一种方法是在命令行下执行脚本,使用命令行执行脚本时,最大运行时间被设置为了无限值。

修改php.ini的脚本执行时间限制

编辑php.ini,修改max_execution_time值:

 代码如下 复制代码

max_execution_time=500

//此修改需要重新加载php.ini,需要重启web服务器生效。

通过.htaccess 文件设置脚本执行时间

 代码如下 复制代码

php_value max_execution_time 500

在脚本中设置执行的最大时间

 代码如下 复制代码

ini_set('max_execution_time', 500);

用php的函数取消脚本的时间限制

 代码如下 复制代码

set_time_limit(0);

set_time_limit用来设置脚本的超时时间,此函数规定从该句运行时起程序必须在指定秒数内运行结束,超时则程序出错退出。

下面是一个例子. 有10000条数据, 要修改其中某些数据,  运用PHP分步执行处理, 代码如下:

action.php

 代码如下 复制代码

$stid = isset($_GET['stid'])?$_GET['stid']:0;
$endid = $stid + 100;
$maxid = 10000;

function dosomething(){
//要时间比较多的操作
……
}
$sql_string=”select *  from `table`  where id>’$stid’ and id $datas = getdata_bysql($sql_string);
foreach($datas as $data){
//处理数据
…..
echo $id.” 处理完成.
”;
if($id>=$maxid){exit;}
}
if($stid $stid = $stid + 100;
$url=”action.php?stid=$stid”;
echo $url;
echo ‘’;
}
?>

其中的dosomething()是一个耗时操作.  这里我们通过限制id范围来减少运行时间,   运行完后通过javascript的跳转来自动运行下一步

现在dedecms生成html页面时就是这样做的哦。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632105.htmlTechArticle在php中默认脚本执行超时时间为30秒了,如果你未进行设置30秒之后如果你的脚本还未执行完就会超时了,下面我来给大详解解决PHP脚本执行...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn