程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP腳本執行超時的解決辦法

PHP腳本執行超時的解決辦法

編輯:關於PHP編程

在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

 代碼如下 復制代碼

<?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頁面時就是這樣做的哦。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved