在php中默许剧本实行超时时候为30秒了,假如你未举行设置30秒以后假如你的剧本还未实行完就会超时了,下面我来给大详解处置惩罚PHP剧本实行超时的要领。
引荐教程: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
<?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<=’$endid’ order by id”; $datas = getdata_bysql($sql_string); foreach($datas as $data){ //处置惩罚数据 ….. echo $id.” 处置惩罚完成. <br />”; if($id>=$maxid){exit;} } if($stid<=$maxid){ $stid = $stid + 100; $url=”action.php?stid=$stid”; echo $url; echo ‘<script language=”javascript”>location=”‘.$url.’”; </script>’; } ?>
个中的dosomething()是一个耗时操纵. 这里我们经由过程限定id局限来削减运转时候, 运转完后经由过程javascript的跳转来自动运转下一步
如今dedecms生成html页面时就是如许做的哦。
以上就是处置惩罚php运转超时的要领的细致内容,更多请关注ki4网别的相干文章!